– 将文件名映射到MIME类型 – Internet数据处理(Python教程)(参考资料)
mimetypes
– 将文件名映射到MIME类型
mimetypes
模块在文件名或URL与与文件扩展名相关联的MIME类型之间进行转换。转换是从filename到MIME类型以及从MIME类型到文件扩展名提供的;编码不支持后者转换.
该模块提供一个类和许多便利功能。这些功能是这个模块的正常接口,但是有些应用程序也可能对这个模块感兴趣.
下面描述的功能提供了该模块的主要接口。如果模块尚未初始化,如果依赖于init()
设置的信息,他们会调用init()
mimetypes.
guess_type
// (url, strict=True)-
根据文件名或URL猜出文件的类型,由url给出。其价值是一个元组
(type, encoding)
其中type是None
如果该类型无法猜到(缺失或未知的后缀)或形式为"type/subtype"
的字符串,可用于MIME content-type header.encoding是
None
没有编码或用于编码的程序的名称(例如压缩或 gzip )。编码适合用作Content-Encoding标题,不作为Content-Transfer-Encoding头。映射是表驱动的。编码后缀区分大小写;类型后缀首先尝试敏感,然后不区分大小写可选strictargument是一个标志,指定已知MIME类型的列表是否仅限于在IANA注册的官方类型。当strict是
True
(默认值),仅支持IANA类型;当strict是False
时,还会识别一些其他非标准但常用的MIME类型.
mimetypes.
guess_all_extensions
(type, strict=True)-
根据type给出的MIME类型猜测文件的扩展名。其中的值是一个字符串列表,给出了所有可能的文件扩展名,包括前导点(
"."
)。扩展不保证与任何特定数据流相关联,但将映射到MIME类型type由guess_type()
.可选strict参数与具有相同的含义
guess_type()
功能。
mimetypes.
guess_extension
(type, strict=True)-
根据MIME类型猜测文件的扩展名,由type。其中的值是一个给出文件扩展名的字符串,包括前导点(
"."
)。扩展不保证与任何特定数据流相关联,但是将被type映射到MIME类型guess_type()
。如果没有延伸可以猜到type,None
是回复的可选的strict参数与
guess_type()
函数的含义相同.
有一些附加功能和数据项可用于控制模块的行为.
mimetypes.
init
(files=None)-
初始化内部数据结构。如果给定,files必须是文件名序列,应该用于扩充默认类型映射。如果省略,则使用的文件名取自
knownfiles
;在Windows上,加载了当前的注册表设置。在模块中定义的files或knownfiles
优先于之前命名的那些。允许重复调用init()
为files指定一个空列表将阻止系统默认应用:只有内置的已知值才会出现list.
更改版本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中类型,否则为非标准的.
mimetypes.
inited
-
指示全局数据结构是否已初始化的标志。这被设置为
True
init()
.
mimetypes.
knownfiles
-
通常安装的类型映射文件名列表。这些文件通常命名为
mime.types
,并通过不同的包安装在不同的位置.
mimetypes.
suffix_map
-
Dictionary将后缀映射到后缀。这用于允许识别编码和类型由相同扩展指示的编码文件。例如,
.tgz
扩展名被映射到.tar.gz
以允许单独识别编码和类型.
mimetypes.
encodings_map
-
Dictionary将文件扩展名映射到编码类型.
mimetypes.
common_types
-
Dictionary将文件扩展名映射到非标准,但常见的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对象
对于可能需要多于一个MIME类型数据库的应用程序,MimeTypes
类可能很有用;它提供了一个类似于mimetypes
模块的界面
- class
mimetypes.
MimeTypes
// (filenames=(), strict=True) -
此类表示MIME类型数据库。默认情况下,它提供与此模块其余部分相同的数据库访问权限。初始数据库是模块提供的副本,可以通过使用
mime.types
或read()
方法将额外的readfp()
样式文件加载到数据库中来扩展。如果不需要默认数据,也可以在加载附加数据之前清除映射字典.可选的filenames参数可用于使其他文件在默认数据库的“顶部”上加载.
suffix_map
-
字典将后缀映射到后缀。这用于允许识别编码和类型由相同扩展指示的编码文件。例如,
.tgz
扩展名映射到.tar.gz
,以允许单独识别编码和类型。这最初是模块中定义的全局suffix_map
的副本.
types_map_inv
-
包含两个字典的元组,将MIME类型映射到filenameextensions列表:第一个字典用于非标准类型,第二个字典用于标准类型。它们由
common_types
和types_map
.
guess_all_extensions
(type, strict=True)-
类似于
guess_all_extensions()
功能,使用存储的表作为对象的一部分.
read
(filename, strict=True )-
从名为filename的文件中加载MIME信息。这使用
readfp()
toparse文件.如果strict是
True
,信息将被添加到标准类型列表中,否则添加到非标准类型列表中.
readfp
(fp, strict=True)-
从打开的文件fp加载MIME类型信息。该文件必须具有标准
mime.types
文件的格式如果strict是
True
,信息将被添加到标准类型列表中,否则添加到非标准类型列表.
read_windows_registry
(strict=True)-
来自Windows注册表的MIME类型信息.
Availability:Windows.
如果strict是
True
,信息将被添加到标准类型列表中,否则添加到非标准类型列表中新版本3.2.
评论被关闭。