P
Python Заметки
@pythonotes2.5K подп.
964просмотров
38.4%от подписчиков
5 января 2026 г.
Score: 1.1K
В работе с медиа файлами часто требуется определить не просто расширение, а его, скажем так, "категорию". Тоесть определить это видео, аудио или картинка. Примерно в 10 случаях из 10 в ревью я вижу обычный хардкодинг с большим мапингом и соответствующим поиском по нему. file_type_by_ext = { 'video': ['.mp4', '.mov', '.mkv', ...], 'audio': ['.mp3', '.wav', '.ogg', ...], 'image': ['.jpg', '.png', '.exr', ...] } Для таких случаев есть простой способ - стандартная библиотека mimetypes. import mimetypes mimetypes.guess_type("example.txt") # ('text/plain', None) Причём ей не нужен файл, достаточно просто имени строкой. Первый элемент кортежа это MIME-тип (Multipurpose Internet Mail Extensions Type) - стандартный способ идентификации формата файла. Формат: type/subtype type - общая категория данных (text, video, image) subtype - конкретный формат внутри категории mimetypes.guess_type("photo.jpg") # ('image/jpeg', None) mimetypes.guess_type("render.mp4") # ('video/mp4', None) Второй элемент это тип кодировки содержимого, обычно для контейнеров типа gz и аналогичных. mimetypes.guess_type("file.tar.gz") # ('application/x-tar', 'gzip') mimetypes.guess_type("backup.tar.bz2") # ('application/x-tar', 'bzip2') Итого, узнать категорию файла одной строкой: mimetypes.guess_type('myfile.mov')[0].split('/')[0] # video Конечно при условии, что тип будет распознан, иначе будет None а не строка. Но об этом в следующий раз. #libs #tricks
964
просмотров
1627
символов
Нет
эмодзи
Нет
медиа

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

Все посты канала →
В работе с медиа файлами часто требуется определить не прост — @pythonotes | PostSniper