15
我正在使用使用Django的forms.FileField
上傳的文件。這將返回一個類型爲InMemoryUploadedFile
的對象。如何以通用換行模式訪問上傳的文件?
我需要以通用換行模式訪問此文件。任何想法如何做到這一點,而不保存,然後重新打開文件?
感謝
或我正在使用使用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視圖中使用此,您可能需要輸入文件的數據轉換爲Unicode:
stream = io.StringIO(unicode(request.FILES['foo'].read()), newline=None)
這個偉大的工程。我在我的Django視圖中使用它和csv.DictReader一起。 '讀者= csv.DictReader(流)'然後'在閱讀器中的行:#import each row'任何想法,這將做什麼內存使用?我在'預算'上:)我知道我應該把文件保存在一個臨時位置,但是我很好奇,如果現在我需要做任何垃圾一樣的清理? – teewuane 2014-12-29 21:05:17