Spec-Zone.ru › Python 3.7

mimetypes — Сопоставление имён файлов с типами MIME

Исходный код: Lib/mimetypes.py

Модуль mimetypes преобразует имя файла или URL-адрес в тип MIME, связанный с расширением файла. Преобразования выполняются от имени файла к типу MIME и от типа MIME к расширению имени файла; кодировки для последнего преобразования не поддерживаются.

Модуль предоставляет один класс и ряд удобных функций. Функции — это стандартный интерфейс к этому модулю, но некоторые приложения могут быть заинтересованы и в классе.

Функции, описанные ниже, обеспечивают основной интерфейс для этого модуля. Если модуль не был инициализирован, они вызовут init(), если они полагаются на информацию, которую init() настраивает.

mimetypes.guess_type(url, strict=True)

Определяет тип файла по имени файла или 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.

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

Spec-Zone.ru

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