Как я могу получить доступ к загруженному файлу в режиме универсальной новой строки?

Я работаю с файлом, загруженным с помощью Django forms.FileField. Это возвращает объект типа InMemoryUploadedFile.

Я должен получить доступ к этому файлу в режиме универсальной новой строки. Какие-либо идеи о том, как сделать это, не сохраняя и затем вновь открыв файл?

Спасибо

15
задан Zach 9 December 2009 в 19:13
поделиться

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']

Для фактического использования этого класса в Вашем представлении, Вам может понадобиться преобразовать данные входного файла в юникод:

stream = io.StringIO(unicode(request.FILES['foo'].read()), newline=None)
14
ответ дан 1 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: