Как обнаружить тип MIME из файлового буфера в Python, особенно для устаревших офисных форматов, таких как .xls, .doc, .pPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обнаружить тип MIME из файлового буфера в Python, особенно для устаревших офисных форматов, таких как .xls, .doc, .p

Сообщение Anonymous »

Я строю библиотеку Python общего назначения для извлечения текста, которая должна поддерживать ввод из любого: < /p>
  • Путь файла (например, STR, указывающий на локальный файл), < /li>
    < /ul>
    или < /p>


    или < /p>


    < /ul>
    Чтобы решить, какую функцию извлечения вызывает, мне нужно обнаружить тип файла MIME.

    Код: Выделить всё

    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? Работает даже в потоковых или основанных на загрузке контекстах и ​​не зависит от расширений файлов? Только. 🚀

Подробнее здесь: https://stackoverflow.com/questions/795 ... egacy-offi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»