Heim > Backend-Entwicklung > Python-Tutorial > Warum verfügt meine Python-CSV-Ausgabe unter Windows über zusätzliche Wagenrückläufe?

Warum verfügt meine Python-CSV-Ausgabe unter Windows über zusätzliche Wagenrückläufe?

Patricia Arquette
Freigeben: 2024-12-03 19:30:13
Original
479 Leute haben es durchsucht

Why Does My Python CSV Output Have Extra Carriage Returns on Windows?

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'])
Nach dem Login kopieren

Erwartete Ausgabe:

hi,dude
hi2,dude2
Nach dem Login kopieren

Tatsächliche Ausgabe (Windows):

hi,dude\r\r\nhi2,dude2\r\r\n
Nach dem Login kopieren

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)
    ...
Nach dem Login kopieren

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)
    ...
Nach dem Login kopieren

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!

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