使用libmagic的文件类型标识

magicfile的Python项目详细描述


magicfile(python magic的cffi分支)

PyPI version

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。

你可以通过我的website联系我,或者 github

贡献者

感谢github上提交特性和错误修复的这些人。

许可证

magicfile是根据mit许可证发行的。查看包含的 有关详细信息的许可证文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将JSP与Hibernate连接?   java无法退出do while循环,即使表达式为false   使用Restlet和GAE过滤根路径   java<rich:popupanel按钮在JSF项目中不起作用   java错误:在安卓包中找不到属性“showAsAction”的资源标识符   性能Java 2D:在屏幕上快速渲染大量瓷砖   java Android MediaPlayer seekTo(0)不寻求启动   java使用jsweet将小程序代码转换为js。类文件依赖关系   java Maven导入问题,在complie时间使用里程碑版本,但在运行时使用最新版本   java JPA:从另一个对象访问对象返回null   java我如何启动一个java应用程序。带有桌面快捷方式的jar文件(针对特定jre)   java将值从JTextField传递到方法的最佳方式?   在java中从字符串中分离子字符串   java如何初始化使用另一个映射作为值的EnumMap   单击<a>元素时java JSF调用bean方法   java Board的方块不会出现。   java如何在spring boot中部分回滚数据,错误将被分散   java从另一个类文件向类添加方法   如何修复错误“TimeBackUp.java使用未经检查或不安全的操作”?