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. Возвращаемое значение — список строк со всеми возможными расширениями имён файлов, включая начальную точку (
'.'). Не гарантируется, что расширения были связаны с каким-либо конкретным потоком данных, однако функцияguess_type()сопоставила бы их с типом MIME type.Необязательный аргумент strict имеет то же значение, что и в функции
guess_type().
-
mimetypes.guess_extension(type, strict=True) -
Определяет расширение файла по его типу MIME, заданному аргументом type. Возвращаемое значение — строка с расширением имени файла, включая начальную точку (
'.'). Не гарантируется, что расширение было связано с каким-либо конкретным потоком данных, однако функцияguess_type()сопоставила бы его с типом MIME 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 -
Флаг, указывающий, были ли инициализированы глобальные структуры данных. Функция
init()устанавливает его в значениеTrue.
-
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.
-
add_type(type, ext, strict=True) -
Добавляет сопоставление типа MIME type с расширением ext. Если расширение уже известно, новый тип заменит старый. Если тип уже известен, расширение будет добавлено в список известных расширений.
Если strict равен
True(значение по умолчанию), сопоставление будет добавлено к официальным типам MIME; в противном случае — к нестандартным.
-
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/mimetypes.html