Beim Schreiben einer CSV-Datei in Python kann es frustrierend sein, auf Leerzeilen zu stoßen, die jede Zeile in Microsoft Excel trennen. Dieses Problem entsteht aufgrund der Art und Weise, wie csv.writer mit Zeilenenden umgeht.
In Python 3 führt das Öffnen der Ausgabedatei im Textmodus ('w') dazu, dass Windows jede neue Zeile ('n') in a übersetzt Wagenrücklauf und Zeilenumbruch ('rn'). Um dies zu verhindern, sollte die Datei im unübersetzten Textmodus mit dem Parameter newline='' (leerer String) geöffnet werden:
with open('thefile_subset11.csv', 'w', newline='') as outfile: writer = csv.writer(outfile)
Alternativ mit der open()-Methode des Path-Moduls ermöglicht auch die Angabe des Newline-Parameters:
from pathlib import Path with Path('thefile_subset11.csv').open('w', newline='') as outfile: writer = csv.writer(outfile)
In Python 2 besteht die Lösung darin, die Ausgabedatei im Binärformat zu öffnen Modus ('wb') anstelle von Textmodus ('w'):
with open('thefile_subset11.csv', 'wb') as outfile: writer = csv.writer(outfile)
Für speicherinterne Vorgänge mit StringIO enthält die resultierende Zeichenfolge das Windows-spezifische Zeilenendezeichen ('rn '). Denken Sie beim Schreiben dieser Zeichenfolge in eine Datei daran, newline='':
from io import StringIO s = StringIO() writer = csv.writer(s) writer.writerow([1, 2, 3]) with open('thefile_subset11.csv', 'w', newline='') as f: f.write(s.getvalue())
Das obige ist der detaillierte Inhalt vonWie verhindert man Leerzeilen in der Python-CSV-Ausgabe nach Excel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!