TGINSIGHT SIMILAR POSTS
Најди сличен содржај
Изворен канал @pythonotes · Post #405 · 5 јан.
В работе с медиа файлами часто требуется определить не просто расширение, а его, скажем так, "категорию". Тоесть определить это видео, аудио или картинка. Примерно в 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
Пронајдени 0 слични објави
Пребарај: #libs
Не се пронајдени слични објави.
Оваа објава нема претходно пресметани резултати на сличност.