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
但仍然达到相同的准确度?
答案 0 :(得分:7)
您可以尝试:magic's mimetype
答案 1 :(得分:2)
我使用类似但稍微缩写的东西:
import subprocess
mimeType = subprocess.check_output(['file', '-ib', '/path/to/file']).strip()
它可能不是更优雅,但它更短,更容易阅读,我总是喜欢它。