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