我正在尝试使用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还很陌生,如果能了解我做错了什么,我将不胜感激。input_file也允许用户选择任何文件,但如果这些信息有助于,我只会用它来调用一个名为Grades.sv的文件
EDIT:回溯错误消息。
Traceback (most recent call last):
File "C:UsersmustaOneDriveDocumentscomputer assignment programsprogram 4Program4.py", line 24, in <module>
file_open()
File "C:UsersmustaOneDriveDocumentscomputer assignment programsprogram 4Program4.py", line 18, in file_open
for row in grades_reader:
ValueError: I/O operation on closed file.
由于break
结束循环和with
主体,因此关闭文件
您应该将该文件的读取代码保留在with
缩进中。
csv.reader
不会将文件加载到内存列表中