我正在尝试使用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.
答案 0 :(得分:0)
文件已关闭,因为您的break
结束了循环,with
主体也因此结束了文件
您应将文件读取代码保留在with
缩进内。
csv.reader
不会将文件加载到某些内存列表中