P
Python Заметки
@pythonotes2.5K подп.
979просмотров
39.0%от подписчиков
12 января 2026 г.
Score: 1.1K
import mimetypes mimetypes.guess_type("example.fbx") # (None, None) Формат не распознан, так как не зарегистрирован в системе. Регистрация происходит с помощью функции mimetypes.init(). Эта функция автоматически вызывается при первом обращении. Для каждой OS работает по-разному. В Windows читает реестр, в Linux достает всё из файла /etc/mime.types, в MacOS читает из системной БД. На linux можно попробовать распознать тип через вызов file --mime-type -b <filename> эта команда попробует прочитать метадату самого файла, то есть должен быть доступ к файлу. Но это не гарантия успеха. Можно попробовать использовать нестрогое соответствие IANA с помощью флага strict=False. Тогда будут учтены старые и нестандартные типы. Обычно они с префиксом x- Новые типы можно добавлять самостоятельно. mimetypes.add_type('application/x-fbx', '.fbx') # с точкой mimetypes.guess_type("example.fbx") # ('application/x-fbx', None) Либо вызвать init() еще раз передав список текстовых файлов с нужными вам типами (без точки) # my-mime-types.txt application/x-fbx fbx application/x-ogo ogo application/x-aga aga mimetypes.init(['my-mime-types.txt']) mimetypes.guess_type("example.ogo") # ('application/x-ogo', None) Есть и обратная операция - получить расширение файла из mime-типа mimetypes.guess_extension('image/jpeg') # .jpg Или все подходящие расширения mimetypes.guess_all_extensions('image/jpeg') # ['.jpg', '.jpe', '.jpeg', '.jfif'] Советую почитать полную документацию Также обратите внимание на библиотеку content-types для работы с mime-типами, где больше возможностей. #libs #tricks
979
просмотров
1684
символов
Нет
эмодзи
Нет
медиа

Другие посты @pythonotes

Все посты канала →
import mimetypes mimetypes.guess_type("example.fbx") # (None — @pythonotes | PostSniper