mimetypes
— Map filenames to MIME types¶
Вихідний код: Lib/mimetypes.py
Модуль mimetypes
перетворює назву файлу або URL-адресу на тип MIME, пов’язаний із розширенням назви файлу. Передбачено перетворення імені файлу в тип MIME та типу MIME у розширення імені файла; кодування не підтримуються для останнього перетворення.
Модуль надає один клас і ряд зручних функцій. Функції є звичайним інтерфейсом для цього модуля, але деякі програми також можуть бути зацікавлені в класі.
Описані нижче функції забезпечують основний інтерфейс для цього модуля. Якщо модуль не було ініціалізовано, вони викличуть init()
, якщо вони покладаються на інформацію, встановлену init()
.
- mimetypes.guess_type(url, strict=True)¶
Вгадайте тип файлу на основі його назви файлу, шляху або URL-адреси, заданої url. URL-адреса може бути рядком або path-like object.
Поверненим значенням є кортеж
(тип, кодування)
, де 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: Added support for url being a path-like object.
- mimetypes.guess_all_extensions(type, strict=True)¶
Guess the extensions for a file based on its MIME type, given by type. The return value is a list of strings giving all possible filename extensions, including the leading dot (
'.'
). The extensions are not guaranteed to have been associated with any particular data stream, but would be mapped to the MIME type type byguess_type()
.Необов’язковий аргумент strict має те саме значення, що й функція
guess_type()
.
- mimetypes.guess_extension(type, strict=True)¶
Guess the extension for a file based on its MIME type, given by type. The return value is a string giving a filename extension, including the leading dot (
'.'
). The extension is not guaranteed to have been associated with any particular data stream, but would be mapped to the MIME type type byguess_type()
. If no extension can be guessed for type,None
is returned.Необов’язковий аргумент strict має те саме значення, що й функція
guess_type()
.
Деякі додаткові функції та елементи даних доступні для керування поведінкою модуля.
- mimetypes.init(files=None)¶
Ініціалізація внутрішніх структур даних. Якщо задано, files має бути послідовністю імен файлів, які слід використовувати для доповнення карти типів за замовчуванням. Якщо опущено, імена файлів для використання беруться з
knownfiles
; у Windows завантажуються поточні параметри реєстру. Кожен файл, названий у files абоknownfiles
, має пріоритет над файлами, названими перед ним. Повторний викликinit()
дозволено.Якщо вказати порожній список для файлів, системні параметри за замовчуванням не будуть застосовані: із вбудованого списку будуть присутні лише добре відомі значення.
Якщо files має значення
None
, внутрішня структура даних повністю перебудовується до початкового значення за замовчуванням. Це стабільна операція, яка дає однакові результати при багаторазовому виклику.Змінено в версії 3.2: Раніше параметри реєстру Windows ігнорувалися.
- mimetypes.read_mime_types(filename)¶
Завантажте карту типів, указану у файлі filename, якщо вона існує. Карта типів повертається як словник, який зіставляє розширення імен файлів, включаючи початкову крапку (
'.''
), на рядки у формі'тип/підтип'
. Якщо файл filename не існує або не може бути прочитаний, повертаєтьсяNone
.
- mimetypes.add_type(type, ext, strict=True)¶
Додайте зіставлення типу MIME type з розширенням ext. Коли розширення вже відомо, новий тип замінить старий. Якщо тип уже відомий, розширення буде додано до списку відомих розширень.
Якщо strict має значення
True
(за замовчуванням), відображення буде додано до офіційних типів MIME, інакше – до нестандартних.
- mimetypes.inited¶
Прапорець, що вказує, чи ініціалізовано глобальні структури даних.
init()
встановлює значенняTrue
.
- 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
, інформацію буде додано до списку стандартних типів, інакше – до списку нестандартних типів.