我正在尝试使用 python-magic 包,它是 libmagic 的包装类。
我使用“pip install python-magic”安装,但是当我测试它时:
import magic
ms = magic.open(magic.MAGIC_NONE)
ms.load()
Run Code Online (Sandbox Code Playgroud)
它表明 module' 对象没有属性 'open'。我在谷歌上搜索,有人说原因之一是我没有 __init__.py 文件。所以我检查了我的个人站点包目录。我找到了 magic.py、magic.pyc 和一个文件夹 python_magic-0.4.3-py2.7.egg-info,其中只包含一些文本文件。
如何获取 __init__.py 文件?我检查了安装的其他软件包,其中一些确实有这样的文件。
谢谢。
没有任何 magic.open()功能。如果您查看python-magic文档,您会发现它具有magic.from_file()和magic.from_buffer()功能。
用于magic.from_file()测试路径名;该模块会为您打开该文件并确定类型。用于magic.from_buffer()测试字节序列(str在 Python 2 中、bytes在 Python 3 中)。
您还可以实例化一个magic.Magic()类(每个线程!)来改变它的操作方式:
Magic(mime=False, magic_file=None, mime_encoding=False)
Run Code Online (Sandbox Code Playgroud)
记录为:
创建一个新的
libmagic包装器。
mime- 如果True返回 mime 类型而不是文本描述
mime_encoding- 如果True返回编解码器
magic_file- 使用除系统默认值之外的 mime 数据库
根据README,这就是公共 API 的 全部内容。
类在内部Magic处理magic.MAGIC_NONE;例如,mime=True创建实例时的设置magic.Magic()将设置一个标志。magic.MAGIC_MIME
看起来您遇到的代码似乎完全涵盖了一个不同的Pythonmagic库,需要更多的内部处理。我的建议:不要试图复制这一点。使用这个新库,它仅记录了 API 。
| 归档时间: |
|
| 查看次数: |
10562 次 |
| 最近记录: |