Я пытаюсь понять, что делает функция init() в пакете python mimetypes. Это устаревшая функция, которая не нужна в более поздних версиях python?Является ли Python mimetypes.init() устаревшей функцией?
ответ
mimetypes.init()
полезен, если вы хотите добавить MIME-типы/расширения, выходящие за пределы по умолчанию. Если вам не нужно это делать, тогда не нужно звонить mimetypes.init()
; просто используйте служебные функции нормально, и они сами назовут их, если это необходимо. Если вы do необходимо сделать это, кроме mimetypes.init()
есть также mimetypes.read_mime_types()
и mimetypes.add_type()
.
Это относится к Python 2 и 3.
Согласно mimetypes
module documentation:
Функции, описанные ниже, обеспечивают основной интерфейс этого модуля . Если модуль не был инициализирован, они будут вызывать init() , если они полагаются на информацию init().
mimetypes.init(files=None)
Инициализировать внутренние структуры данных. Если задано, файлы должны быть последовательностью имен файлов, которые должны использоваться для увеличения карты типа по умолчанию. Если опущено, используемые имена файлов берутся из известных файлов; в Windows загружаются текущие настройки реестра. Каждый файл с именем в файлах или известных файлах имеет приоритет над именами, указанными перед ним. Повторное вызов init() разрешено.
Задание пустого списка файлов приведет к тому, что системные значения по умолчанию не будут применяться: будет использоваться только в известных значениях.
Это как в Python 2.7, так и в Python 3.x.
Спасибо, это полезно. Хотя я все еще пытаюсь понять, когда это нужно использовать. Например, у меня, похоже, нет проблем с добавлением типов через 'read_mime_types()' и 'add_type' без вызова' init() ' – Michael
' init() 'для инициализации кеша' mimetypes' из файлов карт типов. 'read_mime_types()' просто вернет 'dict', содержащий сопоставления в файле карты типов, не добавляя его в кеш' mimetypes'. 'add_type()' позволяет добавить одно сопоставление в кеш 'mimetypes'. – Cyphase
Существует также класс ['MimeTypes'] (https://docs.python.org/3/library/mimetypes.html#mimetypes-objects), который имеет аналогичный интерфейс с модулем' mimetypes', но позволяет вам более одной базы данных MIME-типа в вашей программе. – Cyphase