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