19.5. mimetypes
- 将文件名映射到MIME类型¶
源代码: Lib / mimetypes.py
mimetypes
模块在文件名或URL与与文件扩展名关联的MIME类型之间进行转换。提供从文件名到MIME类型和从MIME类型到文件扩展名的转换;后面的转换不支持编码。
该模块提供一个类和多个方便功能。函数是这个模块的正常接口,但是一些应用程序也可能对类感兴趣。
下面描述的功能提供了该模块的主要接口。如果模块尚未初始化,如果它们依赖于信息init()
设置,则它们将调用init()
。
-
mimetypes.
guess_type
(url, strict=True)¶ 根据文件名或URL(由url给出)猜测文件类型。返回值为元组
(类型, 编码)
其中类型为None
如果类型不能猜测(缺少或未知的后缀)或者一个形式为'type/subtype'
的字符串,可用于MIME content-type编码为
None
,无编码或用于编码的程序名称。compress或gzip)。该编码适合用作Content-Encoding t>头,而不是作为Content-Transfer-Encoding头。映射是表驱动的。编码后缀区分大小写;类型后缀首先尝试敏感,然后情况不敏感。可选的strict参数是一个标志,指定已知MIME类型的列表是否仅限于使用IANA注册的官方类型。当严格为
True
(默认值)时,仅支持IANA类型;当严格为False
时,还会识别一些其他非标准但常用的MIME类型。
-
mimetypes.
guess_all_extensions
(type, strict=True)¶ 根据由类型给出的MIME类型猜测文件的扩展名。返回值是给出所有可能的文件扩展名的字符串列表,包括前导点(
'.'
)。这些扩展不能保证与任何特定数据流相关联,但会通过guess_type()
映射到类型的MIME类型。可选的strict参数与
guess_type()
函数具有相同的含义。
-
mimetypes.
guess_extension
(type, strict=True)¶ 根据由类型给出的MIME类型猜测文件的扩展名。返回值是一个给出文件名扩展名的字符串,包括前导点(
'.'
)。该扩展不能保证已与任何特定数据流相关联,但将通过guess_type()
映射到MIME类型类型。如果未能为类型猜出扩展名,则返回None
。可选的strict参数与
guess_type()
函数具有相同的含义。
一些附加功能和数据项可用于控制模块的行为。
-
mimetypes.
init
(files=None)¶ 初始化内部数据结构。如果给定,文件必须是应用于扩充默认类型映射的文件名的序列。如果省略,要使用的文件名取自
knownfiles
;在Windows上,当前注册表设置已加载。在文件或knownfiles
中命名的每个文件优先于在其之前命名的文件。重复调用init()
。为文件指定空列表将防止应用系统默认值:只有内建列表中会显示众所周知的值。
在版本3.2中更改:以前,Windows注册表设置被忽略。
-
mimetypes.
read_mime_types
(filename)¶ 加载文件filename中给出的类型映射(如果存在)。类型映射作为将文件扩展名(包括前导点(
'.'
))映射到形式为'type/subtype'
的字符串的字典返回。如果文件filename不存在或无法读取,则会返回None
。
-
mimetypes.
add_type
(type, ext, strict=True)¶ 将MIME类型类型的映射添加到扩展ext。当扩展名已知时,新类型将替换旧的扩展名。当类型已知时,扩展将添加到已知扩展的列表中。
当strict是
True
(默认值)时,映射将添加到官方MIME类型,否则添加到非标准MIME类型。
-
mimetypes.
knownfiles
¶ 通常安装的类型映射文件名列表。这些文件通常命名为
mime.types
,并且由不同的软件包安装在不同的位置。
-
mimetypes.
suffix_map
¶ 字典映射后缀到后缀。这用于允许识别编码和类型由相同扩展名指示的编码文件。例如,
.tgz
扩展映射到.tar.gz
,以允许单独识别编码和类型。
-
mimetypes.
encodings_map
¶ 将文件扩展名映射到编码类型。
-
mimetypes.
types_map
¶ 字典映射MIME类型的文件扩展名。
-
mimetypes.
common_types
¶
模块的示例用法:
>>> 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'
19.5.1. MimeTypes Objects¶
MimeTypes
类可能对可能需要多个MIME类型数据库的应用程序有用;它提供类似于mimetypes
- class
mimetypes.
MimeTypes
(filenames=(), strict=True)¶ 此类表示MIME类型数据库。默认情况下,它提供对与此模块的其余部分相同的数据库的访问。The initial database is a copy of that provided by the module, and may be extended by loading additional
mime.types
-style files into the database using theread()
orreadfp()
methods. 如果不需要默认数据,则也可以在加载附加数据之前清除映射字典。可选的文件名参数可用于使附加文件加载到默认数据库的“顶部”。
-
MimeTypes.
suffix_map
¶ 字典映射后缀到后缀。这用于允许识别编码和类型由相同扩展名指示的编码文件。例如,
.tgz
扩展映射到.tar.gz
,以允许单独识别编码和类型。这最初是模块中定义的全局suffix_map
的副本。
-
MimeTypes.
encodings_map
¶ 将文件扩展名映射到编码类型。这最初是模块中定义的全局
encodings_map
的副本。
-
MimeTypes.
types_map
¶ Tuple包含两个字典,将文件扩展名映射到MIME类型:第一个字典用于非标准类型,第二个字典用于标准类型。它们由
common_types
和types_map
初始化。
-
MimeTypes.
types_map_inv
¶ Tuple包含两个字典,将MIME类型映射到文件扩展名列表:第一个字典用于非标准类型,第二个字典用于标准类型。它们由
common_types
和types_map
初始化。
-
MimeTypes.
guess_extension
(type, strict=True)¶ 类似于
guess_extension()
函数,使用作为对象的一部分存储的表。
-
MimeTypes.
guess_type
(url, strict=True)¶ 类似于
guess_type()
函数,使用作为对象的一部分存储的表。
-
MimeTypes.
guess_all_extensions
(type, strict=True)¶ 类似于
guess_all_extensions()
函数,使用作为对象的一部分存储的表。
-
MimeTypes.
read
(filename, strict=True)¶ 从名为filename的文件加载MIME信息。这使用
readfp()
来解析文件。如果严格是
True
,信息将被添加到标准类型的列表,否则添加到非标准类型的列表。
-
MimeTypes.
readfp
(fp, strict=True)¶ 从打开的文件fp加载MIME类型信息。该文件必须具有标准
mime.types
文件的格式。如果严格为
True
,则信息将添加到标准类型列表中,否则添加到非标准类型列表中。
-
MimeTypes.
read_windows_registry
(strict=True)¶ 从Windows注册表加载MIME类型信息。可用性:Windows。
如果严格为
True
,则信息将添加到标准类型列表中,否则添加到非标准类型列表中。版本3.2中的新功能。