【发布时间】:2014-10-23 12:25:24
【问题描述】:
这里的代码更干净。请看:
def data_report_admin(csv_id):
foranalyse = Reports.objects.get(pk=csv_id)
path_csv = foranalyse.file.path
with open(path_csv, 'rb') as csvfile:
excelreader = csv.reader(csvfile, delimiter=',', quotechar='|')
k =1
for row in excelreader:
pprint.pprint(row)
for 循环上面的一切都工作正常,但是在抛出错误之后
I/O operation on closed file
为什么会这样?
代码在django view function.中完美运行
这里的工作流程是......管理员可以使用save_model将文件上传到服务器,然后保存后返回data_report_admin(csv_id)函数执行和解析csv文件并将这些值保存到数据库中。
【问题讨论】:
-
哪一行抛出这个错误?
-
@Tichodroma
for row in excelreader:抛出错误.... -
你能在不使用
csv的情况下尝试open(path_csv, "rb")和read吗? -
@Tichodroma 像这样
excelreader = csvfile.read..?但这里也有同样的错误 -
所以你不能从这个文件中读取。你有权限吗?它存在吗?