Python получить правильное окончание строки - PullRequest
62 голосов
/ 18 января 2009

Есть ли простой способ получить тип конца строки, используемый текущей операционной системой?

Ответы [ 4 ]

96 голосов
/ 18 января 2009

Если вы работаете с файлом, который вы открыли в текстовом режиме, то вы правы: все разрывы строк отображаются как '\n'. В противном случае вы ищете os.linesep.

С http://docs.python.org/library/os.html:

Os. linesep

Строка, используемая для разделения (или, скорее, завершения) строк на текущая платформа. Это может быть один символ, такой как '\ n' для POSIX, или несколько символов, например, '\ r \ n' для Windows. Не использовать os.linesep как терминатор строки, когда запись файлов, открытых в текстовом режиме ( дефолт); вместо этого используйте один '\ n', на всех платформах.

18 голосов
/ 18 января 2009

О, я понял это. Очевидно, PEP-278 утверждает следующее:

Любая строка, заканчивающаяся во входном файле, будет выглядеть как '\ n' в Python, поэтому немного другого кода нужно изменить, чтобы обработать универсальные символы новой строки.

5 голосов
/ 18 января 2009

Если указать тест соотв. правильно открывать двоичные файлы при открытии файлов и использовать универсальные символы новой строки, вам не придется беспокоиться о различных символах новой строки.

Но если вам нужно, используйте os.linesep

0 голосов
/ 20 апреля 2018

os.linesep важен, так как зависит (как следует из названия :)) от os.

например. в Windows это не "\ n", а "\ r \ n".

Но если вас не волнуют мультиплатформенные вещи, вы можете просто использовать '\ n'.

...