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

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

mimetypes.guess_extension(type, strict=True)

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

Объекты 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–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/mimetypes.html

Spec-Zone.ru

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