为什么magic.from_buffer返回None?

时间:2013-03-01 23:13:46

标签: python python-magic

以下是我致电magic.from_buffer时所得到的内容:

>>> import urllib2
>>> data = urllib2.urlopen('http://www.in.gov/judiciary/opinions/previous/wpd/05040501.bed.doc').read()
>>> len(data)
29696
>>> from lib import magic
>>> magic.from_buffer(data, mime=True)

此时,我应该被提供application/msword,但是我在最后一次通话中得不到任何结果。我错过了什么?

这适用于我的开发机器,但在我的服务器上失败。我很困惑。

1 个答案:

答案 0 :(得分:0)

我不确定问题的原因(可能是版本),但我已经能够解决它的问题:

mime = magic.from_buffer(data, mime=True)
if mime == None:
    # Workaround for issue with libmagic1==5.09-2 in Ubuntu 12.04. Fixed in libmagic 5.11-2.
    file_str = magic.from_buffer(data)
    if file_str.startswith('Composite Document File V2 Document'):
        mime = 'application/msword'

不太好,但要完成工作,直到可以升级服务器并获得新版本的libmagic。