我正在尝试使用python-magic包,这是libmagic的包装类。
我使用“pip install python-magic”安装 但是当我测试它时:
import magic
ms = magic.open(magic.MAGIC_NONE)
ms.load()
它显示模块'对象没有属性'打开'。我搜索谷歌,有人说,一个原因是我没有__init__.py文件。所以我检查了我的peronsal site-packages目录。我找到了magic.py,magic.pyc和一个文件夹python_magic-0.4.3-py2.7.egg-info,它只包含一些文本文件。
如何获取__init__.py文件?我检查了安装的其他软件包,其中一些已经安装 有这样一个文件。
感谢。
答案 0 :(得分:4)
没有 magic.open()
功能。如果您查看python-magic
documentation,则可以看到它具有magic.from_file()
和magic.from_buffer()
功能。
使用magic.from_file()
测试路径名称;模块为您打开该文件,并确定类型。使用magic.from_buffer()
测试字节序列(Python 2中的str
,Python 3中的bytes
。)
还有一个magic.Magic()
类可以实例化(每个线程!)来改变它的运行方式:
Magic(mime=False, magic_file=None, mime_encoding=False)
记录为:
创建一个新的
libmagic
包装器。以外的mime数据库
mime
- 如果True
,则返回mimetypes而不是文字说明mime_encoding
- 如果True
,则返回编解码器magic_file
- 使用系统默认值
并根据README
, 所有 就公共API而言。
Magic
类在内部处理magic.MAGIC_NONE
;在创建mime=True
实例时设置magic.Magic()
会设置magic.MAGIC_MIME
标记。
看起来您遇到的代码完全覆盖了不同的 Python magic
库,这需要更多的内部手持。我的建议:不要试图复制它。使用这个新库,它的文档API 仅。