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