我反对以下内容(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类型作为字符串。
答案 0 :(得分:2)
如果您正在处理guess_extension
出错的mimetypes修复集,请在猜测之前添加覆盖字典。
known_extension = {'text/html': '.txt', ...}
...
extension = known_extension.get(mimetype) or guess_extension(mimetype)