Как я могу устранить эту ошибку ввода-вывода при попытке сохранить файл в python? - PullRequest
0 голосов
/ 07 августа 2020

Я получаю следующую ошибку с этим кодом: строка 8, в строке в csv_reader: ValueError: операция ввода-вывода в закрытом файле

import csv
import re

with open('file.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)

ff = []
for line in csv_reader:
       ff.append([re.search('mfgcode="(.+?)"', line[0] ).group(1),re.search('modelno="(.+?)"', line[0] ).group(1),re.search('qtyavail="(.+?)"', line[0] ).group(1)])
        
df = pd.DataFrame(ff,columns =['mfgcode','modelno','qtyavail'])
df.to_csv("test.csv",index=False)
print (df)

Что может быть ошибка, препятствующая сохранению файла?

1 Ответ

1 голос
/ 07 августа 2020

ваш csv_reader находится за пределами блока with.

Попробуйте:

import csv
import re

with open('file.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)

    ff = []
    for line in csv_reader:
        ff.append([re.search('mfgcode="(.+?)"', line[0] ).group(1),re.search('modelno="(.+?)"', line[0] ).group(1),re.search('qtyavail="(.+?)"', line[0] ).group(1)])
        
    df = pd.DataFrame(ff,columns =['mfgcode','modelno','qtyavail'])
    df.to_csv("test.csv",index=False)
    print (df)
...