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. возвращает значение представляет собой список строки, дающих все возможные расширения имени файла, включая ведущую точку ('.'). Расширения, как гарантируют, не будут связаны ни с каким конкретным потоком данных, но были бы нанесены на карту к типу type MIME guess_type().

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

mimetypes.guess_extension(type, strict=True)

Угадать расширение для файла на основе его типа MIME, заданного параметром type. возвращает значение - это строка, дающий расширение имени файла, включая ведущую точку ('.'). Расширение, как гарантируют, не будет связано ни с каким конкретным потоком данных, но было бы нанесено на карту к типу type MIME 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-type; обеспечивает интерфейс, аналогичный интерфейсу модуля 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.

Availability: Windows.

Если strict является True, информация будет добавлена в список стандартных типов, иначе в список нестандартных типов.

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