导入csv模块文件未打开

时间:2020-10-22 21:54:13

标签: python csv

我正在尝试使用csv模块打开一个csv文件,然后尝试使用此代码从其中读取一些数据。

import csv



def file_open():
    input_file=str(input('enter the input file to use'))

    while True:
        try:
            with open(input_file,'r') as grades:
                grades_reader=csv.reader(grades, delimiter=',')
                break
        except FileNotFoundError:
            print('FileNotFoundError')
            input_file=str(input('enter the input file to use'))

    row_num=1
    for row in grades_reader:
        print('row',row_num,row)
        row_num+=1
    


file_open()

并且文件打开似乎一直在起作用,直到到达必须读取数据的部分,然后出现一个I / O错误,表明文件已关闭。我对python还是很陌生,并且希望对我做错了什么有任何见解。 输入文件也意味着允许用户选择任何文件,但如果该信息有帮助,我只会使用它来调用一个名为Grades.csv的文件。

编辑:回溯错误消息。

Traceback (most recent call last):
  File "C:\Users\musta\OneDrive\Documents\computer assignment programs\program 4\Program4.py", line 24, in <module>
    file_open()
  File "C:\Users\musta\OneDrive\Documents\computer assignment programs\program 4\Program4.py", line 18, in file_open
    for row in grades_reader:
ValueError: I/O operation on closed file.

1 个答案:

答案 0 :(得分:0)

文件已关闭,因为您的break结束了循环,with主体也因此结束了文件

您应将文件读取代码保留在with缩进内。

csv.reader不会将文件加载到某些内存列表中