【问题标题】:I/O operation on closed file对已关闭文件的 I/O 操作
【发布时间】: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 ..?但这里也有同样的错误
  • 所以你不能从这个文件中读取。你有权限吗?它存在吗?

标签: python django csv


【解决方案1】:

为什么要在 admin.py 文件中这样做..?

只要返回iddata_report(csv_id)这里data_report就是视图函数...

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 1970-01-01
    • 2016-07-21
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多