吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2490|回复: 23
收起左侧

[原创工具] Python GUI判断真实文件类型

[复制链接]
wlove52pj 发表于 2023-3-26 19:09
前言:常在河边走,哪能不湿鞋。网上获取的各种文件后缀真真假假,甚至一不小心就会中招。因此,决定用python写一个能无视文件后缀的小程序,直接判断文件类型。
原理:使用python第三方python-magic库,通过文件头的MIME Type进行文件类型判断,不用纠结文件本身的后缀。
下载文件组成:提供源码和exe两种供大家使用,exe文件已在win7 x64/win10 x64下验证过,其他系统请自行验证。
源码:
[Python] 纯文本查看 复制代码
# encoding:utf-8
# Main function:获取当前文件的真实类型。采用MIME进行判断,可以无视后缀的篡改。
# How to Use:拖拽文件至本exe文件上 or 双击打开,执行完成后会在exe目录下生成results.txt文档。

import os
import tkinter
import magic
import sys
from tkinter import filedialog

def process(fnames,dirpath):
	os.chdir(dirpath)
	result = "results.txt"
	f = open(result, "w",encoding="utf-8")
	for fname in fnames:
		if os.path.exists(fname):
			if os.path.isfile(fname):
				content = "name:{}\nType:{}".format(os.path.basename(fname),
				                                    magic.from_buffer(open(fname, "rb").read(2048), mime=True))
				print(content)
				print("*" * 50)
				f.write(content + "\n")
				f.write("*" * 50 + "\n")
			else:
				print(f"{fname} is not a file")
		else:
			print(f"{fname} not found")
	f.close()
	os.startfile(result)

if __name__ == "__main__":
	try:
		
        # 获取当前exe所在执行目录
		if hasattr(sys, 'frozen'):
			application_path = os.path.dirname(sys.executable)
		else:
			application_path = os.path.dirname(os.path.abspath(__file__))
            
        #判断是否是拖拽模式.if yes,直接转入处理,if no,打开UI界面
		fnames=sys.argv[1:]
		if fnames:
			process(fnames,application_path)
		else:
			root = tkinter.Tk()
			root.withdraw()
			fnames = filedialog.askopenfilenames(title='File Selection', filetypes=[ ('All Files', '*') ])
			if fnames:
				process(fnames, application_path)
	except:
		pass


截图

界面

界面

results.jpg
下载链接:
链接:https://pan.baidu.com/s/1Z1yWpgPWW8NPBuUwpe38qw
提取码:52pj

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
xyt0142 + 1 + 1 我很赞同!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bjlaoge 发表于 2023-3-28 13:27
python中运行报错,ImportError: failed to find libmagic.  Check your installation.是不是生成EXE文件后就没事了?
 楼主| wlove52pj 发表于 2023-3-28 13:39
bjlaoge 发表于 2023-3-28 13:27
python中运行报错,ImportError: failed to find libmagic.  Check your installation.是不是生成EXE文件后 ...

没有安装python-magic导致的,如下安装:
[Shell] 纯文本查看 复制代码
pip install python-magic
pip install python-magic-bin
wanash 发表于 2023-3-27 22:32
llc_cn 发表于 2023-3-27 22:58
这个有点用处
brheart92 发表于 2023-3-28 05:24
支持一下,给个优化小建议,最好集成到鼠标右键管理中,这样最省事。。。
头像被屏蔽
hwxq43 发表于 2023-3-28 05:41
提示: 作者被禁止或删除 内容自动屏蔽
halloseven 发表于 2023-3-28 07:55
感谢楼主分享
 楼主| wlove52pj 发表于 2023-3-28 10:49

示例为三张jpg截图,有一张篡改了后缀,一张删除了后缀,一张维持原样。均能识别出来
pentium 发表于 2023-3-28 10:52
感谢分享,学习源码
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 00:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表