Python может автоматически определять, какое соглашение о новой строке используется в файле, благодаря «универсальному режиму новой строки» (U
), и вы можете получить доступ к предположению Python через атрибут newlines
файловых объектов:
f = open('myfile.txt', 'U')
f.readline() # Reads a line
# The following now contains the newline ending of the first line:
# It can be "\r\n" (Windows), "\n" (Unix), "\r" (Mac OS pre-OS X).
# If no newline is found, it contains None.
print repr(f.newlines)
Это дает окончание новой строки первой строки (Unix, DOS и т. Д.), Если таковая имеется.
Как заметил Джон М., если случайно у вас есть патологический файл, в котором используется более одного кодирования новой строки, f.newlines
- это кортеж со всеми кодировками новой строки, найденными до сих пор, после прочтения большого количества строк.
Ссылка: http://docs.python.org/2/library/functions.html#open
Если вы просто хотите преобразовать файл, вы можете просто сделать:
with open('myfile.txt', 'U') as infile:
text = infile.read() # Automatic ("Universal read") conversion of newlines to "\n"
with open('myfile.txt', 'w') as outfile:
outfile.write(text) # Writes newlines for the platform running the program
person
Eric O Lebigot
schedule
10.05.2010