mimetypes — Сопоставление имён файлов с типами MIME
Исходный код: Lib/mimetypes.py
Модуль mimetypes преобразует имя файла или URL в ассоциированный с расширением файла тип MIME. Преобразования выполняются от имени файла к типу MIME и от типа MIME к расширению файла; кодировки при последнем преобразовании не поддерживаются.
Модуль предоставляет один класс и ряд удобных функций. Функции являются основным интерфейсом этого модуля, но некоторые приложения могут быть заинтересованы и в классе.
Функции, описанные ниже, обеспечивают основной интерфейс для этого модуля. Если модуль не был инициализирован, они вызовут init(), если полагаются на информацию, устанавливаемую init().
-
mimetypes.guess_type(url, strict=True) -
Определяет тип файла по его имени файла или 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.
-
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 предотвратит применение системных значений по умолчанию: будут присутствовать только известные значения из встроенного списка.
Изменено в версии 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'
1. Объекты 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–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.5/library/mimetypes.html