mimetypes — Сопоставление имён файлов с типами MIME
Исходный код: Lib/mimetypes.py
Модуль mimetypes преобразует имя файла или URL-адрес в соответствующий MIME-тип, основываясь на расширении файла. Преобразования осуществляются из имени файла в MIME-тип и из MIME-типа в расширение файла; кодировки при последнем преобразовании не поддерживаются.
Модуль предоставляет один класс и ряд удобных функций. Функции представляют собой основной интерфейс к этому модулю, но некоторые приложения могут быть заинтересованы и в классе.
Описанные ниже функции обеспечивают основной интерфейс для этого модуля. Если модуль не был инициализирован, они вызовут init(), если они полагаются на информацию, установленную init().
-
mimetypes.guess_type(url, strict=True) -
Определяет тип файла по его имени файла или 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-типы.
-
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 предотвратит применение системных значений по умолчанию: будут присутствовать только известные значения из встроенного списка.
Изменено в версии 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'
19.5.1. Объекты 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–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.6/library/mimetypes.html