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