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.encoding - это
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
¶ Список имен файлов карт типов, которые обычно устанавливаются. Эти файлы обычно имеют имя
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_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: Windows.
Если strict равно
True
, информация будет добавлена в список стандартных типов, иначе - в список нестандартных типов.Добавлено в версии 3.2.
-