Ich versuche, eine CSV-Datei zu lesen und eine andere zu erstellen. Hier ist der (vereinfachte) Code.Python: Schreiben in CSV-Datei
import os
import csv
import sys
fn = 'C:\mydird\Temp\xyz'
ext = '.txt'
infn = fn+ext
outfn = fn+'o'+ext
infile = open(infn, newline='')
outfile = open(outfn, 'w', newline='')
try:
reader = csv.reader(infile, delimiter=',', quotechar='"') # creates the reader object
writer = csv.writer(outfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
for row in reader: # iterates the rows of the file in orders
if reader.line_num == 1 :
print("Header")
writer.writerow(['Date',
'XY']) # ####### Does not work
else:
# Do something
print(row[0],
row[3]) # ####### Works
writer.writerow([row[0],
row[3]]) # ####### Does not work
finally:
infile.close() # closing
sys.exit(0))
Keine der writerow-Anweisungen generiert Ausgabe.
Die Datei wird erstellt, ist aber leer.
Die print-Anweisung erstellt 'erwartete' Ausgabe.
Ich habe auch schon csv.DictWriter mit keinem Erfolg versucht.
Ich habe mir die verschiedenen Fragen angeschaut, sehe aber keinen Unterschied.
Ich benutze Py 3.3.3 auf einer Win 7 Maschine.
EDIT:
der Schriftsteller Code Vereinfachung verirrt
Sie definieren nicht 'writer' oder schließen das' outfile' –