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

Antworten auf die Frage(0)

Ihre Antwort auf die Frage