mimetypes
— Сопоставление имен файлов с типами MIME¶
Исходный код: Lib/mimetypes.py
Модуль mimetypes
преобразует имя файла или URL-адрес в MIME-тип, связанный с расширением имени файла. Предусмотрены преобразования из имени файла в MIME-тип и из MIME-типа в расширение имени файла; кодировки для последнего преобразования не поддерживаются.
Модуль предоставляет один класс и ряд удобных функций. Функции являются обычным интерфейсом для этого модуля, но некоторые приложения также могут быть заинтересованы в этом классе.
Функции, описанные ниже, обеспечивают основной интерфейс для этого модуля. Если модуль не был инициализирован, они вызовут init()
, если они полагаются на информацию, установленную init()
.
- mimetypes.guess_type(url, strict=True)¶
Угадайте тип файла, основываясь на его имени, пути или URL-адресе, заданном с помощью url. URL-адрес может быть строкой или path-like object.
Возвращаемое значение - это кортеж
(type, encoding)
, где type - этоNone
, если тип не может быть угадан (отсутствует или неизвестный суффикс), или строка вида'type/subtype'
, которую можно использовать для MIME content-type заголовок.кодировка - это
None
для обозначения отсутствия кодировки или названия программы, используемой для кодирования (например, compress или gzip). Кодировка подходит для использования в качестве заголовка Content-Encoding, но не в качестве заголовка Content-Transfer-Encoding. Сопоставления основаны на таблице. Суффиксы кодирования чувствительны к регистру; суффиксы типов сначала проверяются с учетом регистра, а затем без учета регистра.Необязательный аргумент strict - это флаг, указывающий, ограничен ли список известных MIME-типов только официальными типами registered with IANA. Если значение strict равно
True
(по умолчанию), поддерживаются только типы IANA; если значение strict равноFalse
, также распознаются некоторые дополнительные нестандартные, но часто используемые типы MIME.Изменено в версии 3.8: Добавлена поддержка url-адреса в виде path-like object.
- mimetypes.guess_all_extensions(type, strict=True)¶
Угадайте расширения файла на основе его MIME-типа, заданного с помощью type. Возвращаемое значение представляет собой список строк, содержащих все возможные расширения имен файлов, включая начальную точку (
'.'
). Не гарантируется, что расширения были связаны с каким-либо конкретным потоком данных, но они будут сопоставлены с типом MIME type с помощьюguess_type()
.Необязательный аргумент strict имеет то же значение, что и в случае функции
guess_type()
.
- mimetypes.guess_extension(type, strict=True)¶
Угадайте расширение файла на основе его MIME-типа, заданного с помощью type. Возвращаемое значение представляет собой строку, указывающую расширение имени файла, включая начальную точку (
'.'
). Не гарантируется, что расширение было связано с каким-либо конкретным потоком данных, но оно будет сопоставлено с типом MIME type с помощьюguess_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¶
Список имен часто устанавливаемых файлов type map. Обычно эти файлы называются
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
может быть полезен для приложений, которым может потребоваться более одной базы данных типа 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_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.
Availability: Окна.
Если значение strict равно
True
, информация будет добавлена в список стандартных типов, в противном случае - в список нестандартных типов.Добавлено в версии 3.2.