2015-05-15 5 views
-3

Я изучил источник и документацию werkzeug, нигде не указано, какой режим он открыт. Поскольку режим открытого по умолчанию для обычного файла является текстовым режимом, это вызывает у меня вопрос. Раньше у меня была проблема сохранения данных = storage.read() в тип LargeBinary в sqlalchemy с ошибкой, говорящей: нельзя преобразовать unicode в байтовый тип.Is Filestorage storage.read() открыть файл в двоичном режиме?

ответ

0

Да, файлы открываются в двоичном режиме. Смотрите default_stream_factory() function source:

def default_stream_factory(total_content_length, filename, content_type, 
          content_length=None): 
    """The stream factory that is used per default.""" 
    if total_content_length > 1024 * 500: 
     return TemporaryFile('wb+') 
    return BytesIO() 

Так что либо вы получите TemporaryFile() объект открыт в wb+ режиме (читать и писать, двоичный), или в памяти BytesIO объекта.

 Смежные вопросы

  • Нет связанных вопросов^_^