小编典典

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

python

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

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

谢谢


阅读 116

收藏
2020-12-20

共1个答案

小编典典

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

>>> 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视图中实际使用此功能,可能需要将输入文件数据转换为unicode:

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