Python kann automatisch erkennen, welche Newline Konvention in einer Datei verwendet wird, dank des "Universal-Newline-Modus" (U
), und Sie können Python zugreifen erraten durch das newlines
Attribut Dateiobjekte:
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)
Dies das newline Ende der ersten Zeile gibt (Unix, DOS, etc.), wenn irgendein.
Wie John M. wies darauf hin, wenn Sie eine pathologische Datei, die mehr als eine Newline-Codierung verwendet, zufällig, f.newlines
ist ein Tupel mit allen bisherigen Zeilencodierungen, nach dem Lesen von vielen Zeilen.
Referenz: http://docs.python.org/2/library/functions.html#open
Wenn Sie nur eine Datei konvertieren möchten, können Sie einfach tun:
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
gleiche Frage wie http: // stackoverflow.com/questions/121392/how-to-determine-the-line-ending-of-a-file (außer diesem ist 'python' getaggt :-) – Jonik