Дополнительно
Удаление всех переносов строк из длинной строки текста
По сути, я прошу пользователя ввести строку текста в консоль, но строка очень длинная и содержит много переносов строк. Как бы я мог взять строку пользователя и удалить все переносы строк, чтобы она стала одной строкой текста. Мой метод получения строки очень прост.
string = raw_input("Please enter string: ")
Есть ли другой способ получения строки от пользователя? Я использую Python 2.7.4 на Mac.
P.S. Очевидно, что я ноб, поэтому даже если решение не самое эффективное, но использует наиболее простой синтаксис, буду признателен.
113
7
Как вводить переносы строк с помощью
raw_input
? Но, как только у вас есть строка с некоторыми символами, от которых вы хотите избавиться, простозамените
их.В приведенном выше примере я заменил все пробелы. Строка
'\n'
представляет собой новые строки. А\r
обозначает возврат каретки (если вы работаете на windows, вы можете получить эти пробелы, и второеreplace
обработает их для вас!)в основном:
Заметьте также, что это плохая идея называть вашу переменную
string
, так как это затеняет модульstring
. Еще одно имя, которого я бы избегал, но иногда с удовольствием использую:file
. По той же причине.Вы можете попробовать использовать замену строки:
Вы можете разделить строку без аргумента разделителя, который будет обрабатывать последовательные пробелы как один разделитель (включая новые строки и вкладки). Затем присоединитесь, используя пробел:
https://docs.python.org/2/library/stdtypes.html#str.split
обновлено на основании комментария
Xbello
:читать подробнее здесь
Другой вариант - regex:
Метод с учетом
требуется такая многострочная строка, которая может быть грязной, например,.
и производит хорошую однострочную строку
ОБНОВЛЕНИЕ: Чтобы исправить несколько символов новой строки, создающих избыточные пробелы:
Это работает и для следующего
test_str = '\ nhej ho \ n aaa \ r \ n \ n \ n \ n a \ n'
Проблема с rstrip заключается в том, что он работает не во всех случаях (как я сам видел мало). Вместо этого вы можете использовать - text = text.replace ("\ n", "") это удалит всю новую строку \ n пробелом.
Заранее спасибо, ребята, за ваши голоса.