Ich habe eine CSV-Datei mit, sagen wir, 50 Zeilen von Daten, und ich würde es in separate CSV-Dateien für jede Zeile teilen, die erste Zeile enthält (Kopfzeile) und die entsprechende Zeile.CSV-Datei öffnen und jede Zeile in neue, dynamisch benannte CSV-Datei schreiben
z. Datei 1 enthält: row1, row2, Datei 2 enthält: row1, row3, Datei 3 enthält: row1, row4
Und so weiter.
Derzeit arbeitet er mit:
import csv
counter = 1
with open('mock_data.csv', 'r', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
filename = "file_%s" % str(counter)
with open(filename, 'w') as csvfile_out:
writer = csv.writer(csvfile_out)
writer.writerow(row)
counter = counter + 1
ich zur Zeit 'csvfile_out' nicht definiert zu bekommen.
a) Bin ich das auch schon richtig? b) Irgendwelche Ideen, warum csvfile_out nicht definiert wird?
Vielen Dank dafür. Der undefinierte Fehler war, dass ich dumm war. Was gut ist, weil ich definitiv nicht gedacht habe, dass irgendetwas mit dem Code nicht stimmt! –
Follow-up: Ich habe ein seltsames Problem damit. Die 'writer.writerow (row)' wird in die dritte Zeile mit einer leeren Zeile dazwischen gelegt. Irgendwelche Ideen? –
Ich denke, dass dieses Problem auftreten kann, wenn Sie leere Zeilen in Ihrer 'mock_data.csv' haben. Sie müssen leere Zeilen aus Ihrer 'mock_data.csv', [siehe hier] entfernen (http://stackoverflow.com/questions/4521426/delete-blank-rows-from-csv), oder Ihren Code einchecken, wenn Sie eine Zeile haben ist leer oder nicht (ich habe diese zweite Option in meine Antwort eingefügt, ich hoffe, das kann Ihr Problem beheben). – titiro89