Spec-Zone.ru › Python 3.13

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.

Устарело с версии 3.13: Передача пути к файлу вместо URL считается устаревшей. Используйте для этого guess_file_type().

mimetypes.guess_file_type(path, *, strict=True)

Определяет тип файла по его пути, заданному параметром path. Аналогична функции guess_type(), но принимает путь вместо URL. Путь может быть строкой, объектом bytes или объектом, подобным пути.

Добавлено в версии 3.13.

mimetypes.guess_all_extensions(type, strict=True)

Определяет расширения файла по его типу MIME, заданному параметром type. Возвращаемое значение — список строк со всеми возможными расширениями имён файлов, включая начальную точку ('.'). Не гарантируется, что расширения связаны с каким-либо конкретным потоком данных, но функции guess_type() и guess_file_type() сопоставят их с типом MIME type.

Необязательный аргумент strict имеет то же значение, что и в функции guess_type().

mimetypes.guess_extension(type, strict=True)

Определяет расширение файла по его типу MIME, заданному параметром type. Возвращаемое значение — строка с расширением имени файла, включая начальную точку ('.'). Не гарантируется, что расширение связано с каким-либо конкретным потоком данных, но функции guess_type() и guess_file_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_file_type(path, *, strict=True)

Аналогичен функции guess_file_type(), но использует таблицы, хранящиеся в объекте.

Добавлено в версии 3.13.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API