706 Stimmen

Mit Python geschriebene CSV-Datei hat Leerzeilen zwischen den einzelnen Zeilen

import csv

with open('thefile.csv', 'rb') as f:
  data = list(csv.reader(f))
  import collections
  counter = collections.defaultdict(int)

  for row in data:
        counter[row[10]] += 1

with open('/pythonwork/thefile_subset11.csv', 'w') as outfile:
    writer = csv.writer(outfile)
    for row in data:
        if counter[row[10]] >= 504:
           writer.writerow(row)

Dieser Code lautet thefile.csv ein, nimmt Änderungen vor und schreibt die Ergebnisse in thefile_subset1 .

Wenn ich jedoch die resultierende csv-Datei in Microsoft Excel öffne, gibt es nach jedem Datensatz eine zusätzliche Leerzeile!

Gibt es eine Möglichkeit, dass keine zusätzliche Leerzeile eingefügt wird?

-1voto

JBa Punkte 29

Bei der Verwendung von Python 3 können die Leerzeilen durch die Verwendung der Codecs Modul. Wie in der Dokumentation angegeben, werden die Dateien im Binärmodus geöffnet, so dass keine Änderung des Zeilenumbruchs kwarg erforderlich ist. Ich hatte vor kurzem das gleiche Problem und das hat bei mir funktioniert:

with codecs.open( csv_file,  mode='w', encoding='utf-8') as out_csv:
     csv_out_file = csv.DictWriter(out_csv)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X