Содержание страницы
mimetypes – Сопоставление имён файлов с MIME-типами¶mimetypes – Map filenames to MIME types
Модуль mimetypes преобразует имя файла или URL в MIME-тип, связанный с расширением файла, и обратно. Поддерживается преобразование как из имени файла в MIME-тип, так и из MIME-типа в расширение файла; кодировки для второго преобразования не поддерживаются.
Модуль предоставляет один класс и ряд вспомогательных функций. Функции – это основной интерфейс к модулю, но некоторые приложения могут заинтересоваться и классом.
Описанные ниже функции предоставляют основной интерфейс этого модуля. Если модуль не был инициализирован, они вызовут init(), если используют информацию, которую настраивает init().
- mimetypes.guess_type(filename[, strict])¶
Определяет тип файла по его имени или URL, заданному filename. Возвращаемое значение – кортеж (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])¶
Определяет расширения для файла по его MIME-типу, задаваемому type. Возвращаемое значение – список строк со всеми возможными расширениями файлов, включая ведущую точку ('.'). Расширения не обязательно были связаны с каким-либо конкретным потоком данных, но будут сопоставлены MIME-типу type функцией guess_type().
Необязательный параметр strict имеет то же значение, что и в функции guess_type().
- mimetypes.guess_extension(type[, strict])¶
Определяет расширение файла по его MIME-типу, заданному type. Возвращаемое значение – строка с расширением файла, включая точку в начале ('.'). Расширение не обязательно связано с каким-либо конкретным потоком данных, но будет сопоставлено MIME-типу type функцией guess_type(). Если для type не удаётся определить расширение, возвращается None.
Необязательный параметр strict имеет то же значение, что и в функции guess_type().
Некоторые дополнительные функции и элементы данных доступны для управления поведением модуля.
- mimetypes.init([files])¶
- Инициализирует внутренние структуры данных. Если задан, files должен быть последовательностью имён файлов, которые следует использовать для расширения карты типов по умолчанию. Если параметр опущен, имена файлов берутся из knownfiles. Каждый файл, указанный в files или knownfiles, имеет приоритет над теми, что перечислены ранее. Допускается многократный вызов init().
- mimetypes.read_mime_types(filename)¶
- Загружает карту типов из файла filename, если он существует. Карта типов возвращается в виде словаря, сопоставляющего расширения файлов (включая точку в начале, '.') строкам вида 'type/subtype'. Если файл filename не существует или не может быть прочитан, возвращается None.
- mimetypes.add_type(type, ext[, strict])¶
Добавляет сопоставление 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‑типы.
Класс MimeTypes может быть полезен для приложений, которым требуется более одной базы MIME-типов:
- class mimetypes.MimeTypes([filenames])¶
Этот класс представляет базу MIME-типов. По умолчанию он предоставляет доступ к той же базе данных, что и остальная часть этого модуля. Исходная база данных является копией той, что предоставлена модулем, и может быть расширена загрузкой дополнительных файлов в стиле mime.types в базу данных с помощью методов read() или readfp(). Словари сопоставлений также можно очистить перед загрузкой дополнительных данных, если данные по умолчанию не нужны.
С помощью необязательного параметра filenames можно загрузить дополнительные файлы «поверх» базы по умолчанию.
Пример использования модуля:
>>> 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 Objects
Экземпляры MimeTypes предоставляют интерфейс, очень похожий на интерфейс модуля mimetypes.
- MimeTypes.suffix_map¶
- Словарь, сопоставляющий одни расширения другим. Используется для распознавания закодированных файлов, у которых кодировка и тип указываются одним и тем же расширением. Например, расширение .tgz сопоставляется .tar.gz, чтобы кодировка и тип распознавались отдельно. Изначально это копия глобального suffix_map, определённого в модуле.
- MimeTypes.encodings_map¶
- Словарь, сопоставляющий расширения файлов типам кодировок. Изначально это копия глобального encodings_map, определённого в модуле.
- MimeTypes.types_map¶
- Словарь, сопоставляющий расширения имён файлов с MIME-типами. Изначально это копия глобального types_map, определённого в модуле.
- MimeTypes.common_types¶
- Словарь, сопоставляющий расширения имён файлов с нестандартными, но часто встречающимися MIME-типами. Изначально это копия глобального common_types, определённого в модуле.
- MimeTypes.guess_extension(type[, strict])¶
- Аналогично функции guess_extension(), но использует таблицы, хранящиеся в объекте.
- MimeTypes.guess_type(url[, strict])¶
- Аналогично функции guess_type(), но использует таблицы, хранящиеся в объекте.
- MimeTypes.read(path)¶
- Загружает MIME-информацию из файла с именем path. Для разбора файла используется readfp().
- MimeTypes.readfp(file)¶
- Загружает информацию о MIME-типах из открытого файла. Файл должен иметь формат стандартных файлов mime.types.