python magic文件格式识别
2021/10/11 12:14:13
本文主要是介绍python magic文件格式识别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import os import magic # 决定使用这种方式识别,描述较全面,利用关键字匹配,如果能匹配到,就确定匹配的关键字为其文件类型 # 如果匹配不到,就用之前的文件格式 # a = magic.from_file(path) # b = magic.from_buffer(open(path).read(1024)) # c = magic.from_file(path, mime=True) # print(a) FILE_TYPE = { 'Executables': ['exe', 'mz', 'msi', 'coff', 'elf', 'krnl', 'rpm', 'linux', 'macho'], 'Documents': ['ps', 'rtf', 'odp', 'ods', 'odt', 'hwp', 'gul', 'ebook', 'latex'], 'Code': ['php', 'python', 'perl', 'ruby', 'cpp', 'java', 'shell', 'pascal', 'awk', 'dyalog', 'fortran', 'java-bytecode'], 'Bundles': ['zip', 'gzip', 'bzip', 'rzip', 'dzip', '7-zip', 'cab', 'jar', 'rar', 'mscompress', 'ace', 'arj', 'asd', 'blackhole', 'kgb'], 'Other': ['bat', 'cmd'] } def identify_file_type(): """ 文件类型识别 :return: """ # path = "D:/scripts/file/AF7.5.1.mf" path = "D:/scripts/file/CmdHelperService.7z" # 识别之前先根据文件后缀判断,排除以下文件格式: exclude_file_type = ['txt', 'pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'com', 'mf'] file_type = os.path.splitext(path) if file_type[1]: file_type = file_type[1].strip('.') if file_type not in exclude_file_type: file_type_info = magic.from_file(path) print(file_type_info) # TODO magic库识别后无法准确匹配的特殊文件类型,陆续添加 # dll 类型 if 'DLL' in file_type_info: file_type = 'dll' # vmdk 类型 if 'VMware4 disk image' in file_type_info: file_type = 'vmdk' else: for file_types in FILE_TYPE.values(): for f_type in file_types: if f_type.upper() in file_type_info or f_type.capitalize() in file_type_info or f_type in file_type_info: file_type = f_type return file_type file_type = identify_file_type() print(file_type) # 7-zip archive data, version 0.4 # 7-zip
这篇关于python magic文件格式识别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南