是否有更可靠的替代mimetypes.guess_extension()?

时间:2016-05-25 21:01:41

标签: python mime-types

我反对以下内容(Ubuntu Trusty上的Python 2.7.10):

>>> from mimetypes import guess_extension
>>> guess_extension('text/html')
'.html'
>>> guess_extension('application/json')
'.json'
>>> guess_extension('text/plain')
'.ksh'
>>> guess_extension('audio/mp3')
>>>

它有正确的text / html和application / json,对text / plain做了一个糟糕的猜测,并没有给我任何音频/ mp3。 (有趣的是,将最后一个更改为audio / mpeg会按预期返回'.mp3',但这不是我的数据源使用的。)

这个模块是否有更可靠的替代方案,在我的最后两个案例中会返回'.txt''.mp3'?我查看了python-magic,但基于我看到的所有内容,它看起来需要读取实际的文件数据才能运行。就我而言,我所拥有的只是MIME类型作为字符串。

1 个答案:

答案 0 :(得分:2)

如果您正在处理guess_extension出错的mimetypes修复集,请在猜测之前添加覆盖字典。

known_extension = {'text/html': '.txt', ...}
...
extension = known_extension.get(mimetype) or guess_extension(mimetype)