2 回答
TA贡献1780条经验 获得超1个赞
虽然提到了这个问题mimetypes.guess_extension
,但实际上无法用该模块中的信息来回答。mime 类型到扩展的映射是一对多的,mimetypes
数据库中没有权重信息,按字母顺序对扩展进行排序可以给出一致的答案,但显然不是 OP 想要的。我考虑了以下选项:
根据权威,IANA DB没有每种类型的扩展信息,只有少数类型具有此信息并且需要努力解析。
按受欢迎程度,我希望有一个。
根据共识,一个名为“不完整的 MIME 类型列表”的 MDN wiki 页面是最接近的:它是积极维护的,它只列出了一些知名 mime 类型的一个扩展。
我想实际的解决方案是,从前面提到的 MDN wiki 中获取表格,对这些类型进行硬编码,mimetypes.guess_extension
用作后备。
TA贡献1911条经验 获得超7个赞
要使用 Python 3 和 2 获得一致的输出,您需要使用guess_all_extensions输出并对其进行排序:
>>> from mimetypes import guess_all_extensions
>>> sorted(guess_all_extensions('text/plain'))
['.asc', '.bat', '.c', '.cc', '.conf', '.cxx', '.el', '.f90', '.h', '.hh', '.hxx', '.ksh', '.log', '.pl', '.pm', '.text', '.txt']
.txt 是最后一项。
有点奇怪,这些还没有排序,因为guess_extension只是采用第一个任意扩展名,因此您观察到不同的输出。
添加回答
举报