使用libmagic的文件类型标识
magicfile的Python项目详细描述
magicfile(python magic的cffi分支)
magicfile是libmagic文件类型的python接口
识别库。libmagic通过检查
它们的头根据预定义的文件类型列表。这个
unix命令向命令行公开功能
file
。
用法
>>>importmagicfileasmagic>>>magic.from_file("testdata/test.pdf")'PDF document, version 1.2'>>>magic.from_buffer(open("testdata/test.pdf").read(1024))'PDF document, version 1.2'>>>magic.from_file("testdata/test.pdf",mime=True)'application/pdf'
还有一个Magic
类提供了更直接的控制,
包括重写magic数据库文件和打开字符
编码检测。不建议一般使用。在
特别是,在多个线程之间共享和
如果尝试此操作,则将失败抛出。
>>>f=magic.Magic(uncompress=True)>>>f.from_file('testdata/test.gz')'ASCII text (gzip compressed data, was "test", last modified: Sat Jun 2821:32:522008,fromUnix)'
您还可以组合标志选项:
>>>f=magic.Magic(mime=True,uncompress=True)>>>f.from_file('testdata/test.gz')'text/plain'
版本控制
小版本的颠簸应该向后兼容。大的颠簸不是。
名称冲突
遗憾的是,有两个库使用模块名magic
。这两个模块都已经出现了很长一段时间,如果您使用这个模块,并且使用类似open
的方法得到错误,那么您的代码应该是另一个。希望有一天这些事情会和解。
安装
当前稳定版本的magicfile在pypi和
可以通过运行pip install magicfile
来安装。
其他来源:
故障排除
“magicexception:找不到任何魔法文件!”:一些 libmagic的安装没有正确地指向它们的魔力 数据库文件。尝试在 构造函数:
magic.Magic(magic_file="path_to_magic_file")
。'Windowserror:[error 193]%1不是有效的win32应用程序': 尝试在64位的内部版本中运行32位libmagic dll python将失败并出现此错误。下面是64位libmagic for windows版本:https://github.com/pidydx/libmagicwin64
Windows窗体:异常:访问违规写入0x00亿,这可能表明您正在混合。 windows python和cygwin python。确保libmagic和python构建是一致的。
作者
由亚当·赫普在2001年为一个从未脱离 地面。它最初将swig用于c库绑定,但是 在python标准库中切换到cTypes。
贡献者
感谢github上提交特性和错误修复的这些人。
- 阿米特·塞蒂
- bigben87
- fallgesetz
- FlaPer87
- lukenowak
- 尼古拉德拉比
- sacha@ssl.co.uk
- simpleseb
- tehmaze
许可证
magicfile是根据mit许可证发行的。查看包含的 有关详细信息的许可证文件。