[497]python使用magic模块进行文件类型识别
发布日期:2021-05-16 09:28:45 浏览次数:20 分类:精选文章

本文共 1178 字,大约阅读时间需要 3 分钟。

python-magic - 文件类型识别库

安装

这是一款基于libmagic的文件类型识别库的Python接口。它通过检查文件头部来识别文件类型。这个库最初是通过Unix命令行的file工具暴露给用户的。

使用以下命令安装:

pip install python-magic python-magic-bin

使用方法

从文件中获取信息

以下是常见的使用示例:

# encoding=utf-8
import magic
# 从文件中读取信息
type_info = magic.from_file("./data/123.pdf")
print('文件类型: %s' % type_info)
# 从文件中读取缓冲区内容
type_info = magic.from_buffer(open("./data/123.pdf", 'rb').read(1024))
print('文件类型: %s' % type_info)
# 使用mime类型获取信息
type_info = magic.from_file("./data/123.pdf", mime=True)
print('文件类型: %s' % type_info)

使用Magic类

Magic类提供了更直接的控制方式,用户可以自定义魔术数据库文件以及启用字符编码检测。这一功能主要用于开发人员的定制需求,但不建议用于生产环境,尤其是涉及跨线程操作时,可能导致安全性问题。

import magic
# 创建Magic对象,启用解压缩和字符编码检测
f = magic.Magic(uncompress=True)
# 从文件中读取信息
type_info = f.from_file("./data/123.docx")
print('文件类型: %s' % type_info)
# 同样用于PDF文件
type_info = f.from_file("./data/123.pdf")
print('文件类型: %s' % type_info)

配置参数

可以通过设置Magic类的参数来自定义识别规则。以下是一些常见参数:

# 结合`mime`和`uncompress`参数
f = magic.Magic(mime=True, uncompress=True)
# 从文件中读取信息
type_info = f.from_file("./data/123.docx")
print('文件类型: %s' % type_info)
type_info = f.from_file("./data/123.pdf")
print('文件类型: %s' % type_info)

注意事项

跨多线程访问Magic实例的数据库时可能会导致不稳定性,因此不建议在多线程环境中使用这种方式。

上一篇:[498]left join、inner join、right join的区别
下一篇:[496]urllib.request.urlretrieve()函数

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月27日 15时11分45秒