19.5. mimetypes
—将文件名映射到MIME类型¶
源代码: Lib/mimetypes.py
mimetypes
模块在文件名或URL和与文件扩展名关联的MIME类型之间进行转换。提供从文件名到MIME类型和从MIME类型到文件扩展名的转换;后面的转换不支持编码。
该模块提供一个类和多个方便功能。这些功能是这个模块的正常接口,但是一些应用程序也可能对类感兴趣。
下面描述的功能提供了该模块的主要接口。如果模块没有被初始化,如果它们依赖于 init()
设置的信息,它们将调用 init()
。
-
mimetypes.
guess_type
(url, strict=True)¶ 根据 url 给出的文件名或URL来猜测文件的类型。返回值是一个元组
(type, encoding)
,其中如果类型不能被猜测(缺失或未知的后缀),则 type 为None
,或者是一个可用于MIME content-type 头的形式为'type/subtype'
的字符串。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)¶ 根据 type 给出的MIME类型猜测文件的扩展名。返回值是一个包含所有可能的文件扩展名的字符串列表,包括前导点(
'.'
)。扩展不能保证已经与任何特定的数据流相关联,但将被guess_type()
映射到MIME类型 type。可选的 strict 参数与
guess_type()
函数具有相同的含义。
-
mimetypes.
guess_extension
(type, strict=True)¶ 根据 type 给出的MIME类型猜测文件的扩展名。返回值是一个给出文件扩展名的字符串,包括前导点(
'.'
)。该扩展不保证已经与任何特定数据流相关联,但将被guess_type()
映射到MIME类型 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类型,否则添加到非标准MIME类型。
-
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'
19.5.1. MimeTypes对象¶
MimeTypes
类可能对可能需要多个MIME类型数据库的应用程序有用;它提供了类似于 mimetypes
模块的接口。
-
class
mimetypes.
MimeTypes
(filenames=(), strict=True)¶ 此类表示MIME类型数据库。默认情况下,它提供对与此模块其余部分相同的数据库的访问。初始数据库是模块提供的副本,可以通过使用
read()
或readfp()
方法将附加的mime.types
-style文件加载到数据库中进行扩展。如果不需要默认数据,则也可以在加载附加数据之前清除映射字典。可选 filenames 参数可用于以使其他文件为“在上面”的缺省数据库的加载。
-
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()
来解析文件。如果 strict 是
True
,信息将被添加到标准类型的列表,否则添加到非标准类型的列表。
-
MimeTypes.
readfp
(fp, strict=True)¶ 从打开的文件 fp 加载MIME类型信息。该文件必须具有标准
mime.types
文件的格式。如果 strict 是
True
,则信息将添加到标准类型的列表中,否则添加到非标准类型的列表中。
-
MimeTypes.
read_windows_registry
(strict=True)¶ 从Windows注册表加载MIME类型信息。可用性:Windows。
如果 strict 是
True
,则信息将添加到标准类型的列表中,否则添加到非标准类型的列表中。3.2 新版功能.