Spec-Zone.ru › Python 3.12

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

Spec-Zone.ru

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