mimetypes
mimetypes — Map filenames to MIME types
源代码:
Lib / mimetypes.py
该mimetypes
模块在文件名或URL与与文件扩展名关联的MIME类型之间进行转换。从文件名到MIME类型以及从MIME类型到文件扩展名提供转换; 编码不适用于后面的转换。
该模块提供了一个类和许多便利功能。这些功能是这个模块的正常接口,但是一些应用程序也可能对这个类感兴趣。
下面介绍的功能为该模块提供了主要接口。如果模块尚未初始化,他们将init()
依靠init()
设置的信息进行调用。
mimetypes.guess_type(url, strict=True)
根据由url
给出的文件名或URL猜测文件的类型
。返回值是一个元组(type, encoding)
,如果类型
不能被猜测(丢失或未知的后缀)或表单的字符串(可用于MIME 内容类型
头),则类型
为元组。None'type/subtype'
编码
是None
无编码
或用于编码
的程序的名称(例如压缩
或gzip
)。编码
是适合用作一个内容编码
报头,不
作为内容传送编码
标头。映射是由表驱动的。编码
后缀区分大小写。类型后缀首先是区分大小写,然后区分大小写。
可选的strict
参数是一个标志,指定已知MIME类型的列表是否仅限于在IANA注册的官方类型。当严格
为True
(默认值),只有IANA类型的支持; 当严格的
是False
,一些额外的非标准,但常用的MIME类型也被识别。
mimetypes.guess_all_extensions(type, strict=True)
猜扩展基于其MIME类型
给出一个文件,类型
。返回值是提供所有可能的文件扩展名的字符串列表,包括前导点('.'
)。延伸部不保证已与任何特定的数据流相关联,但将被映射到MIME类型
类型
通过guess_type()
。
可选的严格
参数与该guess_type()
函数具有相同的含义。
mimetypes.guess_extension(type, strict=True)
猜测给出的扩展基于其MIME类型
的文件,类型
。返回值是一个给出文件扩展名的字符串,包括前导点('.'
)。扩展不能保证已与任何特定的数据流相关联,但将被映射到MIME类型
类型
通过guess_type()
。如果没有扩展名可以猜出类型
,None
则返回。
可选的严格
参数与该guess_type()
函数具有相同的含义。
一些额外的功能和数据项目可用于控制模块的行为。
mimetypes.init(files=None)
初始化内部数据结构。如果给定,文件
必须是一系列文件
名,应该用来扩充默认的类型映射。如果省略,则使用的文件
名取自knownfiles
; 在Windows上,加载当前的注册表设置。在文件
中命名的每个文件
或者优先于在它之前命名的文件
knownfiles
。init()
允许重复呼叫。
指定文件
的空列表将防止应用系统默认值:只有已知值将从内置列表中呈现。
2.7版更改:以前,Windows注册表设置被忽略。
mimetypes.read_mime_types(filename)
加载文件filename中
给出的类型映射(如果存在)。类型映射作为字典映射文件扩展名
(包括前导点('.'
))返回到表单的字符串'type/subtype'
。如果文件的文件名
不存在或无法读取,None
则返回。
mimetypes.add_type(type, ext, strict=True)
根据MIME类型
添加映射类型
的扩展名EXT
。当扩展名已知时,新的类型
将取代旧的类型
。当类型
已知时,扩展名将被添加到已知扩展名列表中。
当严格
为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类型。
模块的示例用法:
>>> 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'
1. MimeTypes对象
MimeTypes
类可以是用于其中可能希望多于一个MIME类型的数据库应用程序有用的; 它提供了一个类似于mimetypes
模块的接口。
class mimetypes.MimeTypes(filenames=(), strict=True)
这个类表示一个MIME类型的数据库。默认情况下,它提供与该模块其余部分相同的数据库访问权限。初始数据库是模块提供的副本,可以通过mime.types
使用read()
or readfp()
方法将附加样式文件加载到数据库中进行扩展。如果不需要默认数据,映射字典也可以在加载附加数据之前清除。
可选的文件名
参数可用于使其他文件被加载到默认数据库的“顶部”。
MimeTypes.suffix_map
字典映射后缀到后缀。这用于识别编码文件和类型由相同扩展名表示的编码文件。例如,.tgz
扩展名被映射为.tar.gz
允许单独识别编码和类型。这最初是suffix_map
模块中定义的全局副本。
MimeTypes.encodings_map
字典映射文件扩展名到编码类型。这最初是encodings_map
模块中定义的全局副本。
MimeTypes.types_map
包含两个字典的元组,将文件扩展名映射到MIME类型:第一个字典用于非标准类型,第二个字典用于标准类型。它们由common_types
和初始化types_map
。
MimeTypes.types_map_inv
包含两个字典的元组,将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
,信息将被添加到标准类型列表中,其他非标准类型的列表。
2.7版本的新功能。