Python отримує правильне закінчення рядка


78

Чи є простий спосіб отримати тип закінчення рядка, який використовує поточна операційна система?

Відповіді:


117

Якщо ви працюєте з файлом, який ви відкрили в текстовому режимі, то ви праві, що розриви рядків відображаються як ' \n'. В іншому випадку ви шукаєте os.linesep.

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

ос. рядок

Рядок, який використовується для відокремлення (або, вірніше, закінчення) рядків на поточній платформі. Це може бути один символ, наприклад '\ n' для POSIX, або кілька символів, наприклад, '\ r \ n' для Windows. Не використовуйте os.linesep як термінатор рядка під час написання файлів, відкритих у текстовому режимі (за замовчуванням); використовуйте замість цього \ 'n на всіх платформах.


Коли ви маєте на увазі слово "текстовий режим", чи маєте на увазі загалом небінарний режим?
theX

20

О, я це зрозумів. Очевидно, PEP-278 стверджує наступне:

Будь-який рядок, що закінчується у вхідному файлі, буде розглядатися як '\ n' у Python, тому мало іншого коду потрібно змінювати, щоб обробляти універсальні нові рядки.


7

Якщо вказати тест, відп. належним чином під час відкривання файлів і використовуючи універсальні нові рядки, вам не доведеться турбуватися про різні нові рядки більшість часу.

Але якщо вам доведеться, використовуйте os.linesep


0

os.linesep є важливим, оскільки він залежить (як випливає з назви :)) від os.

Наприклад, у Windows це не "\ n", а швидше "\ r \ n".

Але якщо ви не дбаєте про багатоплатформене, ви можете просто використати \ \ n.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.