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

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

Linda Hamilton
Freigeben: 2024-11-27 21:54:11
Original
493 Leute haben es durchsucht

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

Fehlerbehebung: CSV-Datei in Python fügt unter Windows zusätzlichen Wagenrücklauf an

Beim Schreiben einer CSV-Datei in Python auf einem Windows-System tritt ein unerwartetes Problem auf, bei dem ein zusätzlicher r Das Zeichen erscheint am Ende jeder Zeile in der Datei. Diese Abweichung vom erwarteten rn-Zeilenabschluss gibt Anlass zur Sorge und lässt Entwickler sich über die zugrunde liegende Ursache und die Frage, ob es sich um ein beabsichtigtes Verhalten handelt, fragen.

Um der Ursache dieses Problems auf den Grund zu gehen, 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'])
Nach dem Login kopieren

Dieser Code dient zum Generieren einer CSV-Datei mit dem Namen test.csv, die zwei Datenzeilen enthält: ['hi', 'dude'] und ['hi2', 'dude2']. Bei der Untersuchung der generierten Datei stellen wir jedoch fest, dass an jede Zeile ein zusätzliches R-Zeichen angehängt ist.

Um dieses Verhalten zu verstehen, schauen wir uns die Python-Dokumentation für das CSV-Modul an. Laut Dokumentation wird empfohlen, die Datei auf allen Plattformen mit newline='' zu öffnen, um die universelle Zeilenumbruchübersetzung zu deaktivieren.

Für Python 3:

Standardmäßig Unter Windows verwendet das CSV-Modul die universelle Zeilenumbruchübersetzung, die beim Schreiben in die Datei das Zeilenendezeichen rn in n übersetzt. Um diese Übersetzung zu verhindern und das ursprüngliche rn-Zeilenendezeichen beizubehalten, ist es notwendig, die Datei mit newline='' zu öffnen, wie unten gezeigt:

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

Für Python 2:

Unter Windows für Python 2 ist es wichtig, die Dateien im Binärmodus mit „rb“ oder „wb“ zu öffnen, bevor Sie sie entweder an csv.reader oder übergeben csv.writer. Obwohl es sich bei der Datei um eine Textdatei handelt, wird CSV von den beteiligten Bibliotheken als Binärformat betrachtet, wobei rn Datensätze trennt. Wenn Sie dieses Trennzeichen im Textmodus schreiben, wird die Python-Laufzeit aufgefordert, n durch rn zu ersetzen, was zu den beobachteten rrn-Sequenzen in der Datei führt. Weitere Einzelheiten zu diesem Aspekt finden Sie in dieser vorherigen Antwort.

Das obige ist der detaillierte Inhalt vonWarum fügt meine Python-CSV-Datei 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