mimetypes — сопоставление имён файлов с типами MIME
Исходный код: Lib/mimetypes.py
Модуль mimetypes преобразует имя файла или URL в тип MIME, связанный с расширением имени файла, и наоборот. Доступны преобразования имени файла в тип MIME и типа MIME в расширение имени файла; при последнем преобразовании кодировки не поддерживаются.
Модуль предоставляет один класс и несколько вспомогательных функций. Функции служат обычным интерфейсом этого модуля, однако некоторые приложения могут также заинтересоваться классом.
Описанные ниже функции предоставляют основной интерфейс модуля. Если модуль не был инициализирован, они вызовут init(), если используют информацию, которую настраивает init().
-
mimetypes.guess_type(url, strict=True) -
Определяет тип файла по его имени, пути или URL, заданному параметром url. URL может быть строкой или объектом, подобным пути.
Возвращаемое значение — кортеж
(type, encoding), где type —None, если тип определить не удалось (отсутствует или неизвестно расширение), либо строка вида'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.
Устарело с версии 3.13: Передача пути к файлу вместо URL считается устаревшей. Используйте для этого
guess_file_type().
-
mimetypes.guess_file_type(path, *, strict=True) -
Определяет тип файла по его пути, заданному параметром path. Аналогична функции
guess_type(), но принимает путь вместо URL. Путь может быть строкой, объектом bytes или объектом, подобным пути.Добавлено в версии 3.13.
-
mimetypes.guess_all_extensions(type, strict=True) -
Определяет расширения файла по его типу MIME, заданному параметром type. Возвращаемое значение — список строк со всеми возможными расширениями имён файлов, включая начальную точку (
'.'). Не гарантируется, что расширения связаны с каким-либо конкретным потоком данных, но функцииguess_type()иguess_file_type()сопоставят их с типом MIME type.Необязательный аргумент strict имеет то же значение, что и в функции
guess_type().
-
mimetypes.guess_extension(type, strict=True) -
Определяет расширение файла по его типу MIME, заданному параметром type. Возвращаемое значение — строка с расширением имени файла, включая начальную точку (
'.'). Не гарантируется, что расширение связано с каким-либо конкретным потоком данных, но функцииguess_type()иguess_file_type()сопоставят его с типом MIME 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 -
Флаг, указывающий, были ли инициализированы глобальные структуры данных. Функция
init()устанавливает его вTrue.
-
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 может быть полезен приложениям, которым требуется несколько баз данных типов 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, в противном случае — к нестандартным.
-
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/mimetypes.html