Heim > Backend-Entwicklung > Python-Tutorial > Warum fügt mein Python-CSV-Writer unter Windows zusätzliche Wagenrückläufe hinzu?

Warum fügt mein Python-CSV-Writer unter Windows zusätzliche Wagenrückläufe hinzu?

Linda Hamilton
Freigeben: 2024-12-07 02:14:11
Original
328 Leute haben es durchsucht

Why Does My Python CSV Writer Add Extra Carriage Returns on Windows?

CSV in Python fügt einen zusätzlichen Wagenrücklauf unter Windows an

Der bereitgestellte Codeausschnitt generiert eine CSV-Datei mit einem unerwarteten zusätzlichen Wagenrücklauf (r) in jeder Zeile. Anstelle der gewünschten Ausgabe:

hi,dude
hi2,dude2
Nach dem Login kopieren

Die Datei lautet wie folgt:

hi,dude\r
\r
hi2,dude2\r
\r
Nach dem Login kopieren

Dieses Verhalten entsteht aufgrund der plattformspezifischen Leitungsterminierungsbehandlung.

Die offizielle CSV-Dokumentation empfiehlt die Verwendung von „newline=''“ beim Öffnen von Dateien Deaktivieren Sie die universelle Zeilenumbruchübersetzung:

with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    # ...
Nach dem Login kopieren

Standardmäßig beendet der CSV-Writer jede Zeile mit „rn“, gemäß RFC 4180.

Python 2

Unter Windows sollten Dateien im Binärmodus („rb“ oder „wb“) geöffnet werden, bevor sie an übergeben werden csv.reader oder csv.writer. Obwohl CSV ein Textformat ist, wird es von den beteiligten Bibliotheken als binär betrachtet, wobei „rn“ Datensätze trennt. Beim Schreiben im Textmodus ersetzt die Python-Laufzeitumgebung „n“ durch „rn“, was zu den beobachteten zusätzlichen Wagenrückläufen führt.

Das obige ist der detaillierte Inhalt vonWarum fügt mein Python-CSV-Writer unter Windows zusätzliche Wagenrückläufe hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage