mimetypes
— Сопоставление имён файлов с MIME типами¶
Модуль 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-адреса путеподобного объекта.
-
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.
Доступность: Windows.
Если strict равен
True
, информация будет добавлена в список стандартных типов, иначе — в список нестандартных типов.Добавлено в версии 3.2.
-