Канонический способ удаления символов конца строки (EOL) заключается в использовании метода string rstrip(), удаляющего все завершающие символы \r или \n . Вот примеры символов EOL для Mac, Windows и Unix.
Использование '\ r \n' в качестве параметра rstrip означает, что он удалит любую завершающую комбинацию '\ r' или '\n'. Вот почему это работает во всех трех приведенных выше случаях.
Этот нюанс имеет значение в редких случаях. Например, однажды мне пришлось обрабатывать текстовый файл, который содержал сообщение HL7. Стандарт HL7 требует, чтобы завершающий символ '\ r' был символом EOL. Компьютер с Windows, на котором я использовал это сообщение, добавил свой собственный символ EOL '\ r \n'. Следовательно, конец каждой строки выглядел как '\ r \ r \n'. Использование rstrip ('\ r \n') привело бы к удалению всего '\ r \ r \n', чего я не хотел. В этом случае я просто вырезал последние два символа.
Обратите внимание, что в отличие от функции Perl chomp, эта функция удалит все указанные символы в конце строки, а не только один:
>>> "Hello\n\n\n".rstrip("\n") "Hello"
Ответ 4
Обратите внимание, что rstrip действует не совсем так, как chomp() в Perl, потому что он не изменяет строку. То есть в Perl:
$x="a\n";
chomp $x
в результате получается $x быть "a".
но в Python:
x="a\n"
x.rstrip()
будет означать, что значение x остается неизменным"a\n". Even x=x.rstrip() не всегда дает одинаковый результат, поскольку удаляет все пробелы с конца строки, а не максимум одну новую строку.