I / O-Datei wird nicht geöffnet
Ich habe diese CSV-Datei dl.dropboxusercontent.com/s/tb4yc3lm3gg3j22/out.csv und ich versuche, die letzte Spalte durch die unten stehende Lesemethode zu ersetzen. In meiner input.csv muss ich die letzte Datei durch eine Berechnung ersetzen. Ich versuche wie folgt, aber irgendwie bekomme ich ValueError: I / O-Operation für eine geschlossene Datei. Können Sie mir helfen, den Fehler aufzuzeigen? Da ich versuche, Eingabedatei zu öffnen und alles einschließlich des neuen Wertes zur out.csv-Datei zu schreiben, die nicht anfangs besteht, aber sollte sofort konstruiert werden.
def read():
for file in os.listdir("./"):
if file.endswith('.csv'):
fNameFull = os.path.basename(file)
inputFileName = os.path.splitext(file)[0]
with open(fNameFull, "rb") as infile, open('out.csv', "wb") as outfile:
r = csv.DictReader(infile)
w = csv.DictWriter(outfile, r.fieldnames)
w.writeheader()
for row in r:
if not row["col_last"].strip():
row["col_last"] = "calc_value"
w.writerow(row)
if __name__ == '__main__':
main()
read()
Error
Traceback (most recent call last):
File "C:\Users\hp\Desktop\final\text\finalmod.py", line 50, in <module>
read()
File "C:\Users\hp\Desktop\final\text\finalmod.py", line 39, in read
w.writeheader()
File "C:\Python27\lib\csv.py", line 137, in writeheader
self.writerow(header)
File "C:\Python27\lib\csv.py", line 148, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
ValueError: I/O operation on closed file