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 в качестве объекта, подобного пути.
-
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.
-
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/library/mimetypes.html