Содержание страницы
mimetypes – сопоставление имён файлов с MIME-типами¶mimetypes – Map filenames to MIME types
Исходный код: Lib/mimetypes.py
Модуль mimetypes преобразует имя файла или URL в MIME-тип,
связанный с расширением файла. Предусмотрены преобразования из имени файла
в MIME-тип и из MIME-типа в расширение файла; кодировки не поддерживаются
для последнего преобразования.
Модуль предоставляет один класс и ряд вспомогательных функций. Функции – это основной интерфейс к модулю, но некоторые приложения могут заинтересоваться и классом.
Описанные ниже функции предоставляют основной интерфейс для этого модуля. Если
модуль не был инициализирован, они вызовут init(), если полагаются на
информацию, заданную с помощью init().
- mimetypes.guess_type(url, strict=True)¶
Определяет тип файла по его имени, пути или URL, заданным url. URL может быть строкой или path-подобным объектом.
Возвращаемое значение – кортеж
(type, encoding), где type равенNone, если type не удалось определить (отсутствует или неизвестно расширение), или строка вида'type/subtype', пригодная для использования в заголовке MIME content-type.encoding равен
Noneпри отсутствии кодирования или имени программы, использованной для кодирования (например, compress или gzip). Кодировка подходит для использования в качестве заголовка Content-Encoding, не в качестве заголовка Content-Transfer-Encoding. Отображения управляются таблицами. Суффиксы кодировок чувствительны к регистру; суффиксы типов сначала проверяются с учётом регистра, затем без учёта.Необязательный аргумент strict – флаг, определяющий, ограничивается ли список известных MIME-типов только официальными типами, зарегистрированными в IANA. Если strict равно
True(по умолчанию), поддерживаются только типы IANA; если strict равноFalse, также распознаются некоторые дополнительные нестандартные, но часто используемые MIME-типы.Изменено в версии 3.8: Добавлена поддержка url в качестве path-подобного объекта.
Мягкое устаревание с версии 3.13: Передача пути к файлу вместо URL мягко устарела. Используйте
guess_file_type()для этого.
- mimetypes.guess_file_type(path, *, strict=True)¶
Определяет тип файла по его пути, заданному path. Аналогично функции
guess_type(), но принимает путь вместо URL. Путь может быть строкой, объектом bytes или path-подобным объектом.Добавлено в версии 3.13.
- mimetypes.guess_all_extensions(type, strict=True)¶
Определяет расширения для файла на основе его MIME-типа, заданного type. Возвращаемое значение – список строк, содержащий все возможные расширения файла, включая начальную точку (
'.'). Расширения не гарантируют, что были связаны с каким-либо конкретным потоком данных, но будут сопоставлены с MIME-типом type функциямиguess_type()иguess_file_type().Необязательный аргумент strict имеет то же значение, что и в функции
guess_type().
- mimetypes.guess_extension(type, strict=True)¶
Определяет расширение для файла на основе его MIME-типа, заданного type. Возвращаемое значение – строка, содержащая расширение файла, включая начальную точку (
'.'). Расширение не гарантирует, что было связано с каким-либо конкретным потоком данных, но будет сопоставлено с MIME-типом type функциямиguess_type()иguess_file_type(). Если расширение не может быть определено для type, возвращаетсяNone.Необязательный аргумент strict имеет то же значение, что и в функции
guess_type().
Некоторые дополнительные функции и элементы данных доступны для управления поведением модуля.
- mimetypes.init(files=None)¶
Инициализирует внутренние структуры данных. Если задан, files должен быть последовательностью имён файлов, которые следует использовать для дополнения карты типов по умолчанию. Если не указан, используемые имена файлов берутся из
knownfiles; в Windows загружаются текущие настройки реестра. Каждый файл, указанный в files илиknownfiles, имеет приоритет над указанными ранее. Допускается многократный вызовinit().Указание пустого списка для files предотвратит применение системных значений по умолчанию: будут присутствовать только известные значения из встроенного списка.
Если files равен
None, внутренняя структура данных полностью перестраивается в исходное значение по умолчанию. Это стабильная операция и при многократном вызове будет выдавать одинаковые результаты.Изменено в версии 3.2: Ранее настройки реестра Windows игнорировались.
- mimetypes.read_mime_types(filename)¶
Загружает карту типов из файла filename, если он существует. Карта типов возвращается в виде словаря, сопоставляющего расширения файлов, включая начальную точку (
'.'), со строками вида'type/subtype'. Если файл filename не существует или не может быть прочитан, возвращаетсяNone.
- mimetypes.add_type(type, ext, strict=True)¶
Добавляет сопоставление MIME-типа type с расширением ext. Если расширение уже известно, новый тип заменит старый. Если тип уже известен, расширение будет добавлено в список известных расширений.
Если strict равно
True(значение по умолчанию), соответствие добавляется в официальные MIME-типы, иначе – в нестандартные.
- mimetypes.inited¶
Флаг, указывающий, были ли инициализированы глобальные структуры данных. Устанавливается в
Trueфункциейinit().
- mimetypes.knownfiles¶
Список имён файлов карт типов, которые обычно устанавливаются. Обычно эти файлы называются
mime.typesи устанавливаются разными пакетами в разные расположения.
- mimetypes.suffix_map¶
Словарь, отображающий одни суффиксы на другие. Используется для распознавания закодированных файлов, у которых кодировка и тип указываются одним и тем же расширением. Например, расширение
.tgzотображается на.tar.gz, чтобы кодировку и тип можно было распознавать по отдельности.
- mimetypes.encodings_map¶
Словарь, отображающий расширения имён файлов на типы кодировок.
- mimetypes.types_map¶
Словарь, отображающий расширения имён файлов на MIME‑типы.
- mimetypes.common_types¶
Словарь, отображающий расширения имён файлов на нестандартные, но часто встречающиеся MIME‑типы.
Пример использования модуля:
>>> import mimetypes
>>> mimetypes.init()
>>> mimetypes.knownfiles
['/etc/mime.types', '/etc/httpd/mime.types', ... ]
>>> mimetypes.suffix_map['.tgz']
'.tar.gz'
>>> mimetypes.encodings_map['.gz']
'gzip'
>>> mimetypes.types_map['.tgz']
'application/x-tar-gz'
Объекты MimeTypes¶MimeTypes Objects
Класс MimeTypes может быть полезен приложениям, которым требуется более
одной базы MIME‑типов; он предоставляет интерфейс, похожий на интерфейс
модуля mimetypes.
- class mimetypes.MimeTypes(filenames=(), strict=True)¶
Этот класс представляет базу MIME‑типов. По умолчанию он предоставляет доступ к той же базе, что и остальная часть модуля. Изначальная база – копия базы модуля, и её можно расширить, загружая в неё дополнительные файлы в стиле
mime.typesс помощью методовread()илиreadfp(). Словари отображений можно очистить перед загрузкой дополнительных данных, если данные по умолчанию не нужны.С помощью необязательного параметра filenames можно загрузить дополнительные файлы «поверх» базы по умолчанию.
- suffix_map¶
Словарь, отображающий одни суффиксы на другие. Используется для распознавания закодированных файлов, у которых кодировка и тип указываются одним и тем же расширением. Например, расширение
.tgzотображается на.tar.gz, чтобы кодировку и тип можно было распознавать по отдельности. Изначально это копия глобальногоsuffix_map, определённого в модуле.
- encodings_map¶
Словарь, отображающий расширения имён файлов на типы кодировок. Изначально это копия глобального
encodings_map, определённого в модуле.
- types_map¶
Кортеж из двух словарей, отображающих расширения имён файлов на MIME‑типы: первый словарь – для нестандартных типов, второй – для стандартных. Они инициализируются функциями
common_typesиtypes_map.
- types_map_inv¶
Кортеж из двух словарей, отображающих MIME‑типы на список расширений имён файлов: первый словарь – для нестандартных типов, второй – для стандартных. Они инициализируются функциями
common_typesиtypes_map.
- guess_extension(type, strict=True)¶
Аналогично функции
guess_extension(), но используются таблицы, хранящиеся в составе объекта.
- guess_type(url, strict=True)¶
Аналогично функции
guess_type(), но используются таблицы, хранящиеся в составе объекта.
- guess_file_type(path, *, strict=True)¶
Аналогично функции
guess_file_type(), но с использованием таблиц, хранящихся как часть объекта.Добавлено в версии 3.13.
- guess_all_extensions(type, strict=True)¶
Аналогично функции
guess_all_extensions(), но с использованием таблиц, хранящихся как часть объекта.
- read(filename, strict=True)¶
Загружает информацию MIME из файла с именем filename. Для разбора файла используется
readfp().Если strict равно
True, информация добавляется в список стандартных типов, иначе – в список нестандартных.
- readfp(fp, strict=True)¶
Загружает информацию о MIME-типах из открытого файла fp. Файл должен иметь формат стандартных файлов
mime.types.Если strict равно
True, информация добавляется в список стандартных типов, иначе – в список нестандартных.
- read_windows_registry(strict=True)¶
Загружает информацию о MIME-типах из реестра Windows.
Доступность: Windows.
Если strict равно
True, информация добавляется в список стандартных типов, иначе – в список нестандартных.Добавлено в версии 3.2.
- add_type(type, ext, strict=True)¶
Добавляет сопоставление MIME-типа type с расширением ext. Если расширение уже известно, новый тип заменит старый. Если тип уже известен, расширение будет добавлено в список известных расширений.
Если strict равно
True(значение по умолчанию), соответствие добавляется в официальные MIME-типы, иначе – в нестандартные.