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–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.10/library/mimetypes.html