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.
-
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.12/library/mimetypes.html