mimetypes– 将文件名映射到MIME类型

源代码: Lib / mimetypes.py


mimetypes模块在文件名或URL与与文件扩展名相关联的MIME类型之间进行转换。转换是从filename到MIME类型以及从MIME类型到文件扩展名提供的;编码不支持后者转换.

该模块提供一个类和许多便利功能。这些功能是这个模块的正常接口,但是有些应用程序也可能对这个模块感兴趣.

下面描述的功能提供了该模块的主要接口。如果模块尚未初始化,如果依赖于init()设置的信息,他们会调用init()

mimetypes.guess_type// (url, strict=True)

根据文件名或URL猜出文件的类型,由url给出。其价值是一个元组(type, encoding)其中typeNone如果该类型无法猜到(缺失或未知的后缀)或形式为"type/subtype"的字符串,可用于MIME content-type header.

encodingNone没有编码或用于编码的程序的名称(例如压缩 gzip )。编码适合用作Content-Encoding标题,作为Content-Transfer-Encoding头。映射是表驱动的。编码后缀区分大小写;类型后缀首先尝试敏感,然后不区分大小写

可选strictargument是一个标志,指定已知MIME类型的列表是否仅限于在IANA注册的官方类型。当strictTrue(默认值),仅支持IANA类型;当strictFalse时,还会识别一些其他非标准但常用的MIME类型.

mimetypes.guess_all_extensions (type, strict=True)

根据type给出的MIME类型猜测文件的扩展名。其中的值是一个字符串列表,给出了所有可能的文件扩展名,包括前导点(".")。扩展不保证与任何特定数据流相关联,但将映射到MIME类型typeguess_type().

可选strict参数与具有相同的含义guess_type()功能。

mimetypes.guess_extensiontype, strict=True

根据MIME类型猜测文件的扩展名,由type。其中的值是一个给出文件扩展名的字符串,包括前导点(".")。扩展不保证与任何特定数据流相关联,但是将被type映射到MIME类型guess_type()。如果没有延伸可以猜到type, None是回复的

可选的strict参数与guess_type()函数的含义相同.

有一些附加功能和数据项可用于控制模块的行为.

mimetypes.initfiles=None

初始化内部数据结构。如果给定,files必须是文件名序列,应该用于扩充默认类型映射。如果省略,则使用的文件名取自knownfiles;在Windows上,加载了当前的注册表设置。在模块中定义的filesknownfiles优先于之前命名的那些。允许重复调用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。当扩展已知时,新类型将替换旧类型。当已知类型时,扩展名将被添加到已知扩展名列表中.

strictTrue(默认值)时,映射将添加到官方MIME中类型,否则为非标准的.

mimetypes.inited

指示全局数据结构是否已初始化的标志。这被设置为True init().

mimetypes.knownfiles

通常安装的类型映射文件名列表。这些文件通常命名为mime.types,并通过不同的包安装在不同的位置.

mimetypes.suffix_map

Dictionary将后缀映射到后缀。这用于允许识别编码和类型由相同扩展指示的编码文件。例如,.tgz扩展名被映射到.tar.gz以允许单独识别编码和类型.

mimetypes.encodings_map

Dictionary将文件扩展名映射到编码类型.

mimetypes.types_map

字典映射文件名扩展到MIME类型.

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.typesread()方法将额外的readfp()样式文件加载到数据库中来扩展。如果不需要默认数据,也可以在加载附加数据之前清除映射字典.

可选的filenames参数可用于使其他文件在默认数据库的“顶部”上加载.

suffix_map

字典后缀映射后缀。这用于允许识别编码和类型由相同扩展指示的编码文件。例如,.tgz扩展名映射.tar.gz,以允许单独识别编码和类型。这最初是模块中定义的全局suffix_map的副本.

encodings_map

Dictionary将文件扩展名映射到编码类型。这是最初的全球性问题encodings_map中命名的每个文件

types_map

包含两个字典的元组,将文件扩展名映射到MIME类型:第一个字典用于非标准类型,第二个字典用于标准类型。它们由common_typestypes_map.

types_map_inv

包含两个字典的元组,将MIME类型映射到filenameextensions列表:第一个字典用于非标准类型,第二个字典用于标准类型。它们由common_typestypes_map.

guess_extensiontype, strict=True

类似于guess_extension()功能,使用存储为对象一部分的表格

guess_typeurl, strict=True/)

类似于guess_type()功能,使用存储为对象一部分的表格

guess_all_extensionstype, strict=True

类似于guess_all_extensions()功能,使用存储的表作为对象的一部分.

read (filename, strict=True )

从名为filename的文件中加载MIME信息。这使用readfp() toparse文件.

如果strictTrue,信息将被添加到标准类型列表中,否则添加到非标准类型列表中.

readfp (fp, strict=True)

从打开的文件fp加载MIME类型信息。该文件必须具有标准mime.types文件的格式

如果strictTrue,信息将被添加到标准类型列表中,否则添加到非标准类型列表.

read_windows_registry(strict=True)

来自Windows注册表的MIME类型信息.

Availability:Windows.

如果strictTrue,信息将被添加到标准类型列表中,否则添加到非标准类型列表中

新版本3.2.

评论被关闭。