5

Python 的 mimetypes 模块不是特别准确,它的结果基于文件扩展名。我能想到的获得更准确结果的唯一方法是这样调用 Unixfile命令subprocess.Popen

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

这感觉很不雅。有没有更好的方法来做到这一点不必打电话file但仍能达到同样的准确度?

4

2 回答 2

7

你可以试试:magic's mimetype

于 2012-04-21T22:08:53.700 回答
2

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

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

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

于 2012-12-12T15:04:24.953 回答