Heim >Backend-Entwicklung >Python-Tutorial >Warum werden meinen CSV-Dateien unter Windows zusätzliche Wagenrückläufe hinzugefügt?
Im Python-Code, der CSV-Dateien schreibt, kann es zu einem Problem kommen, bei dem an jede Zeile ein angehängt wird zusätzlicher Wagenrücklauf („r“) auf Windows-Systemen. Dieses unerwartete Verhalten kann dazu führen, dass die generierte CSV-Datei mit einigen Anwendungen oder Systemen nicht kompatibel ist.
Um zu verstehen, warum dies geschieht, analysieren wir das bereitgestellte Code-Snippet:
import csv with open('test.csv', 'w') as outfile: writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL) writer.writerow(['hi', 'dude']) writer.writerow(['hi2', 'dude2'])
In Python 3 die Standardeinstellung Verhalten beim CSV-Schreiben besteht darin, die universelle Zeilenumbruchübersetzung zu verwenden. Das bedeutet, dass unter Windows das Zeilenendezeichen „rn“ automatisch in ein einzelnes „n“ umgewandelt wird. Beim Öffnen der Datei im „w“-Modus ist diese Übersetzung jedoch deaktiviert. Infolgedessen hängt der Writer nach jeder Zeile „rn“ an.
Um die universelle Newline-Übersetzung zu deaktivieren, verwenden Sie beim Öffnen der Datei den Parameter newline='':
with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) ...
In Python 2 Beim Öffnen von Dateien zum CSV-Lesen oder -Schreiben unter Windows muss der Binärmodus („rb“ oder „wb“) verwendet werden:
with open('test.csv', 'wb') as outfile: writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL) ...
Durch Öffnen der Datei im Binärmodus, Eine Zeilenumbruchkonvertierung wird vermieden, wodurch sichergestellt wird, dass „rn“ wie vorgesehen in die Datei geschrieben wird.
Das obige ist der detaillierte Inhalt vonWarum werden meinen CSV-Dateien unter Windows zusätzliche Wagenrückläufe hinzugefügt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!