2010-10-13 10 views
0

Я пытаюсь разработать скрипт, который сравнивает сгенерированную строку времени выполнения от той, которая вводится пользователем. К сожалению, поскольку пользователь вводит свой код с помощью текстового поля, я получаю^M в строке ввода пользователем. Например, если я печатаю эти строки в файл я получаю это:Сравнить строки с символами новой строки в них?

User Input: 
1^M 
2^M 
3 

Output of script: 
1 
2 
3 

Очевидно, что, когда я пытаюсь сравнить эти две строки, я получаю ложь. Каким будет наиболее эффективный способ сортировки этой проблемы? На всякий случай, если вы не заметили, все строки, введенные пользователем «donot», заканчиваются на «^ M». Последняя строка в этой пользовательской строке не имеет значения^M, а вывод кода имеет «\ n» в конце.

ответ

9

Вы должны использовать str.splitlines(), чтобы разделить текст, исходящий из текстового поля, вместо того, что вы используете сейчас. Этот метод правильно обрабатывает \r\n.

0

mystring.rstrip('\r') вернет новую строку с любым^M, удаленным из конца строки.

+0

Эти строки не являются отдельными строками. На самом деле, я пытаюсь сравнить «1^M \ n2^M \ n3» с «1 \ n2 \ n3 \ n». – Neo

+0

@Neo: У вас проблемы. Сначала разделите их на списки строк, а затем сравните их. –

Смежные вопросы