Python 3's open
по умолчанию режим универсального Newlines (newline=None
), в то время как Python 2's open
только обеспечивает режим универсальной, если новые строки строка режима включают U
.
В режиме универсального Newlines, последовательность \r
(старый Mac), \n
(UNIX) или \r\n
(DOS/Windows), все признаются переводы строк, и автоматически преобразуются в \n
так окончаниях строк имеют согласованное представление для упрощения манипуляций со строками ,
Если вы хотите универсальные символы новой строки в Python 2, вы можете использовать строку режима, чтобы включить его или use io.open
, который является почти точным эквивалентом Python 3, построенной в open
(io.open
на Python 3 является просто еще один способ сказать open
).
Если вы хотите отключить универсальные символы новой строки обработки на Python 3, передать open
аргумент newline=''
(для всеобщего признания для целей разрыва строк при чтении/итерации, но без перевода линейных окончаний) или newline='\n'
(например) означает, что только \n
признается как строка, заканчивающаяся на всех, и опять же, перевод строк не выполняется. Передача newline=''
необходима для правильной обработки определенных форматов файлов; модуль csv
выполняет свою собственную обработку окончания строки, а newline=''
гарантирует, что информация не будет потеряна до того, как она дойдет до считывателя csv
.
'ord ('\ n')' даст вам 10. ShadowRanger объяснил причины. – MYGz