Удалить межстрочный интервал в многострочной строке Python

У меня есть строка, которая выглядит так, когда я ее печатаю:

RT @HHRoadGuy: It's that time again! Time to tune in for the latest #fortheloveofmusic episode. Catch it now on @CMT!

http://t.co/VatlhGq9…

Я попытался избавиться от межстрочного интервала с помощью:

tweet = tweet.rstrip('\r\n')

Но это не работает. Вероятно, так как межстрочный интервал находится между ними. Также не могла помочь функция замены. Что я могу сделать здесь?

5 ответов

Решение
tweet = tweet.replace('\n','')

Это ответ. У меня была небольшая ошибка в моем коде, и после того, как я попробовал все эти разные методы и вещи, я ослеп. Сожалею!

Следующее должно работать в большинстве случаев, чтобы избавиться от всех разрывов строк, независимо от того, как они представлены:

lines = tweet.splitlines()
tweet = " ".join(lines)

Или, чтобы избежать двойного интервала (и принять концепцию PM):

tweet = " ".join([line for line in lines if len(line)])

Если вы хотите избавиться только от пустых строк, но сохранить разрывы строк:

tweet = "\n".join([line for line in lines if len(line)])

Есть много символов разрыва строки:\n\n\r\r в зависимости от ввода текста.

Посмотрите http://en.wikipedia.org/wiki/Newline, в зависимости от вашего ввода текста и замените этот символ

Вы уверены, что разделители строк действительно '\r\n', а не просто '\n'? Так как replace() должно работать просто отлично:

>>> s = 'hello\r\n\r\nhi'
>>> print(s)
hello

hi
>>> s2 = s.replace('\r\n\r\n', '\r\n')
>>> print(s2)
hello
hi

Действительно, rstrip() не будет работать, так как эта функция удаляет только справа (конец) строки.

Попробуй это:

>>> '\n'.join([line for line in your_text.splitlines() if line.strip()])

См. http://docs.python.org/2/library/stdtypes.html для получения дополнительной информации о том, как он обрабатывает разрывы строк.

Другие вопросы по тегам