import magic
file_input.seek(0)
mime_type = magic.Magic(mime=True).from_buffer(file_input.read(2048))
file_input.seek(0)
< /code>
Это хорошо работает для современных форматов, таких как PDF, DOCX, XLSX и т. Д., Но не для устаревших форматов офиса Microsoft, таких как .xls, .doc, .ppt. < /p>
Для них обнаруженный тип Mime всегда: < /p>
application/x-ole-storage
Это означает, что я не могу различать .doc и .xls из буфера, если я уже не знаю исходное имя файла или расширение - что может быть недоступно (например, если файл транслируется или загружается). /> magic.from_file(path) работает хорошо-но, очевидно, требует реального файла
path < /li>
FileType легкий, но не поддерживает .xls /.doc < /li>
mimeTypes.gyess_type (). parsing with xlrd, or looking for streams
inside the OLE2 structure
This works, but is fragile and a bit ugly
[*]Embedding extension in metadata (e.g., as a side-channel) — not ideal
for generic libraries
< /ul> Вопрос < /strong>
Есть ли лучший способ обнаружить тип типа MIME файла, данный только буфер Bytesio, особенно для устаревших форматов, таких как .xls, .doc и .ppt? Работает даже в потоковых или основанных на загрузке контекстах и не зависит от расширений файлов? Только.
Я строю библиотеку Python общего назначения для извлечения текста, которая должна поддерживать ввод из любого: < /p> [list] [*] Путь файла (например, STR, указывающий на локальный файл), < /li> < /ul> или < /p>
или < /p>
< /ul> Чтобы решить, какую функцию извлечения вызывает, мне нужно обнаружить тип файла MIME.[code]import magic
file_input.seek(0) mime_type = magic.Magic(mime=True).from_buffer(file_input.read(2048)) file_input.seek(0) < /code> Это хорошо работает для современных форматов, таких как PDF, DOCX, XLSX и т. Д., Но не для устаревших форматов офиса Microsoft, таких как .xls, .doc, .ppt. < /p> Для них обнаруженный тип Mime всегда: < /p> application/x-ole-storage [/code] Это означает, что я не могу различать .doc и .xls из буфера, если я уже не знаю исходное имя файла или расширение - что может быть недоступно (например, если файл транслируется или загружается). /> magic.from_file(path) работает хорошо-но, очевидно, требует реального файла path < /li> FileType легкий, но не поддерживает .xls /.doc < /li> mimeTypes.gyess_type (). parsing with xlrd, or looking for streams inside the OLE2 structure
This works, but is fragile and a bit ugly [/list]
[*]Embedding extension in metadata (e.g., as a side-channel) — not ideal for generic libraries < /ul> ❓ Вопрос < /strong> Есть ли лучший способ обнаружить тип типа MIME файла, данный только буфер Bytesio, особенно для устаревших форматов, таких как .xls, .doc и .ppt? Работает даже в потоковых или основанных на загрузке контекстах и не зависит от расширений файлов? Только. 🚀
Я новичок в Django и работал над приложением Django. И я использовал папку «media», чтобы хранить файлы CSS и JavaScript (я знаю, что это не очень хорошая практика), но это работало. Несколько строк кода
Я новичок в Джанго, и я работал над приложением Django. И я использовал папку Media , чтобы сохранить мои файлы CSS и JavaScript (я знаю, что это не хорошая практика), но она работала. Некоторые строки кода
Я новичок в Джанго, и я работал над приложением Django. И я использовал папку Media , чтобы сохранить мои файлы CSS и JavaScript (я знаю, что это не хорошая практика), но она работала. Некоторые строки кода
При преобразовании большого количества старых документов MS Office регулярно возникают всплывающие окна с запросом паролей документов, разрешения на сохранение файла без макросов или намека на то, что файлы содержат комментарии или исправления....