作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要打开保存在 FileField 中的文件,创建包含文件内容的列表并将其传递给模板。我怎样才能打开文件?我尝试使用 with open(stocklist.csv_file.url, "wb")
但它给了我一个“找不到文件”的错误。如果我这样做:
csv_file = stocklist.csv_file.open(mode="rb")
csv_file
是 None
。但是,有一个文件。如果我打印 print("stocklist.csv_file.url: %s"% stocklist.csv_file.url)
我会得到
stocklist.csv_file:https://d391vo1.cloudfront.net/csv_pricechart/...ss7.csv
如果我转到管理员,我可以下载该文件。那么,如何打开保存在 FileField
中的文件?
最佳答案
.open()
打开文件游标但不返回它,因为它取决于您的存储(文件系统、S3、FTP...)。打开后,you can use .read()
to iterate over the file content .
stocklist.csv_file.open(mode="rb")
content = stocklist.csv_file.read()
stocklist.csv_file.close()
如果你想专门使用文件描述符,那么你可以使用你的存储功能:
from django.core.files.storage import DefaultStorage
storage = DefaultStorage()
f = storage.open(stocklist.csv_file.name, mode='rb')
关于Django 如何在 FileField 中打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42938474/
我是一名优秀的程序员,十分优秀!