Я работаю с файлом, загруженным с помощью Django forms.FileField
. Это возвращает объект типа InMemoryUploadedFile
.
Я должен получить доступ к этому файлу в режиме универсальной новой строки. Какие-либо идеи о том, как сделать это, не сохраняя и затем вновь открыв файл?
Спасибо
Если вы используете 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']
Для фактического использования этого класса в Вашем представлении, Вам может понадобиться преобразовать данные входного файла в юникод:
stream = io.StringIO(unicode(request.FILES['foo'].read()), newline=None)