Heim >Backend-Entwicklung >Python-Tutorial >Warum verfügt meine Python-CSV-Ausgabe unter Windows über zusätzliche Wagenrückläufe?
Problem mit zusätzlichem Wagenrücklauf in der CSV-Ausgabedatei unter Windows in Python
Beim Generieren von CSV-Dateien in Python kann versehentlich ein zusätzlicher Wagenrücklauf hinzugefügt werden Rückkehr am Ende jeder Zeile. Dieses Verhalten kann im folgenden Code beobachtet werden:
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'])
Erwartete Ausgabe:
hi,dude hi2,dude2
Tatsächliche Ausgabe (Windows):
hi,dude\r\r\nhi2,dude2\r\r\n
Ursachen und Lösung für Python 3:
In Python 3 tritt dieses Problem aufgrund der standardmäßigen universellen Newline-Übersetzung auf Besonderheit. Um das Problem zu beheben, öffnen Sie die Datei mit newline='', um diese Übersetzung zu deaktivieren:
with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) ...
Ursachen und Lösung für Python 2:
Unter Windows in Python 2 , tritt dieses Problem auf, weil CSV als Binärformat betrachtet wird und rn das Datensatztrennzeichen ist. Wenn die Datei im Textmodus geöffnet wird, ersetzt Python das n durch rn, was zu einem doppelten Wagenrücklauf führt. Die Lösung besteht darin, Dateien immer im Binärmodus zu öffnen:
with open('test.csv', 'wb') as outfile: writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL) ...
Das obige ist der detaillierte Inhalt vonWarum verfügt meine Python-CSV-Ausgabe unter Windows über zusätzliche Wagenrückläufe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!