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