Файл ввода / вывода не открывается

У меня есть этот CSV-файл dl.dropboxusercontent.com/s/tb4yc3lm3gg3j22/out.csv, и я пытаюсь заменить последний столбец с методом чтения ниже. В моем input.csv я должен заменить последний файл с некоторыми расчетами. Я пытаюсь, как показано ниже, но почему-то я получаю ValueError: I / O операция над закрытым файлом. Можете ли вы помочь мне указать на ошибку? Поскольку я пытаюсь открыть входной файл и записать все, включая новое значение, в файл out.csv, который изначально не существует, но должен быть создан на лету.

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()

Ошибка:

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

Ответы на вопрос(0)

Ваш ответ на вопрос