Spec-Zone.ru › Python 3.9

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. Результат — список строк, содержащих все возможные расширения имени файла, включая ведущую точку ('.'). Расширения не гарантированно связаны с каким-либо конкретным потоком данных, но были бы сопоставлены с 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–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.9/library/mimetypes.html

Spec-Zone.ru

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