Python中更好,更准确的mime类型检测

时间:2012-04-21 22:06:30

标签: python mime-types python-2.7

Python的mimetypes模块不是特别准确,它的结果基于文件扩展名。我能想到获得更准确结果的唯一方法是使用file调用Unix subprocess.Popen命令,如下所示:

import subprocess
mimetype = subprocess.Popen(['file', '/path/to/file', '--mime-type', '-b'], 
    stdout=subprocess.PIPE).stdout.read().strip()

这感觉不够优雅。有没有更好的方法来执行此操作没有必须调用file但仍然达到相同的准确度?

2 个答案:

答案 0 :(得分:7)

您可以尝试:magic's mimetype

答案 1 :(得分:2)

我使用类似但稍微缩写的东西:

import subprocess
mimeType = subprocess.check_output(['file', '-ib', '/path/to/file']).strip()

它可能不是更优雅,但它更短,更容易阅读,我总是喜欢它。