Heim >Backend-Entwicklung >Python-Tutorial >Wie eliminiere ich unerwartete Wagenrückläufe in Python-CSV-Dateien unter Windows?
Umgang mit unerwarteten Wagenrückläufen in CSV-Dateien in Python unter Windows
Beim Generieren einer CSV-Datei in Python kann ein besonderes Problem auftreten: ein Auf Windows-Systemen erscheint am Ende jeder Zeile ein zusätzlicher Wagenrücklauf (r). Dies unterscheidet sich vom erwarteten Verhalten, bei dem jede Zeile je nach Betriebssystem mit einem einzelnen Wagenrücklaufzeichen (r) oder einem Zeilenumbruchzeichen (n) abgeschlossen wird.
Warum das passiert
Unter Windows besteht Pythons Standardverhalten bei der Verarbeitung von CSV-Dateien darin, den Zeilentrenner als universellen Zeilenumbruch (n) zu interpretieren, was sich vom Standard-Unix-Zeilentrenner (rn) unterscheidet. Infolgedessen fügt der CSV-Writer beim Schreiben in eine Datei einen doppelten Wagenrücklauf (rr) an, wodurch eine zusätzliche Leerzeile angezeigt wird.
Behebung des Problems
Um dieses Problem zu beheben, können Sie die universelle Newline-Übersetzung deaktivieren, indem Sie beim Öffnen der Datei newline='' angeben.
Python 3:
with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f)
Python 2:
Für Python 2 wird empfohlen, die Datei im Binärmodus ('rb' oder 'wb') zu öffnen '), bevor Sie es an den CSV-Writer übergeben. Dies liegt daran, dass CSV als Binärformat betrachtet wird, bei dem Zeilentrennzeichen als Rohbytes gespeichert werden.
with open('output.csv', 'wb') as f: writer = csv.writer(f)
Durch Befolgen dieser Empfehlungen können Sie verhindern, dass der CSV-Datei zusätzliche Wagenrückläufe hinzugefügt werden, und so sicherstellen, dass sie eingehalten wird entsprechend den gewünschten Zeilentrennungskonventionen.
Das obige ist der detaillierte Inhalt vonWie eliminiere ich unerwartete Wagenrückläufe in Python-CSV-Dateien unter Windows?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!