我正在使用Django的文件上传文件forms.FileField。这将返回类型的对象InMemoryUploadedFile。
forms.FileField
InMemoryUploadedFile
我需要以通用换行模式访问此文件。关于如何在不保存然后重新打开文件的情况下执行此操作的任何想法?
谢谢
如果您使用的是Python 2.6或更高版本,则可以io.StringIO在将文件读入内存之后使用该类(使用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视图中实际使用此功能,可能需要将输入文件数据转换为unicode:
stream = io.StringIO(unicode(request.FILES['foo'].read()), newline=None)