python - 如何以通用换行模式访问上传的文件?

标签 python django django-forms

我正在处理使用 Django 的 forms.FileField 上传的文件。这将返回类型为 InMemoryUploadedFile 的对象。

我需要在通用换行模式下访问这个文件。关于如何在不保存然后重新打开文件的情况下执行此操作的任何想法?

谢谢

最佳答案

如果您使用的是 Python 2.6 或更高版本,则可以在将文件读入内存(使用 read() 方法)后使用 io.StringIO 类。示例:

>>> import io
>>> s = u"a\r\nb\nc\rd"
>>> sio = io.StringIO(s, newline=None)
>>> sio.readlines()
[u'a\n', u'b\n', u'c\n', u'd']

要在您的 django View 中实际使用它,您可能需要将输入文件数据转换为 unicode:

stream = io.StringIO(unicode(request.FILES['foo'].read()), newline=None)

关于python - 如何以通用换行模式访问上传的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1875956/

相关文章:

python - Python 中带有词干的 UnicodeDecodeError

python - TCP 通信 Python 上的 ValueError

django - 如何让 TinyMCE 弹出窗口在 Django 上工作,其中 "static"和 "dynamic"页面来自不同的域?

Django 多嵌套内联表单集

django-forms - Django-Oscar Basket 定制

django - 为什么标签没有出现在我的 Django ModelForm 中?

python - 来自 scipy.cluster.kmeans 的不稳定结果

python - 不允许主机连接到此 MySQL 服务器(从 VM)

python - 简单标记作为模板中的变量

python - 如果数据库发生变化,如何停止执行长进程?