题外话:代码主体由AI完成,输入需求后开始撸python代码,剩下的就是一点点调试功能和样式了
准备工作
- Python 3.12.4(华为镜像下载,https://mirrors.huaweicloud.com/python/)
- Notepad++:网上搜的任意版本都可以
- 配置notepad++:编写python后Ctrl+S保存.py文件,F5运行选择python安装目录下的python.exe或输入“python路径\python.exe "$(FULL_CURRENT_PATH)" & ECHO. & PAUSE & EXIT”,双引号中间为自己的python路径,保存设置快捷键F10,后期编辑按设置的快捷键F10即可运行
- pyinstaller:exe打包工具,cmd命令行输入 pip install pyinstaller 安装即可
Python代码
import hashlib
import os
import tkinter as tk
from tkinter import filedialog
def calculate_hash(file_path, algorithm):
if os.path.isfile(file_path):
with open(file_path, 'rb') as f:
data = f.read()
if algorithm == 'SHA256':
hash_value = hashlib.sha256(data).hexdigest()
elif algorithm == 'SHA1':
hash_value = hashlib.sha1(data).hexdigest()
elif algorithm == 'MD5':
hash_value = hashlib.md5(data).hexdigest()
return hash_value
else:
return "文件不存在"
def update_hash(text_path, text_hash, algorithm_var):
file_path = text_path.get("1.0", tk.END).strip()
algorithm = algorithm_var.get()
hash_value = calculate_hash(file_path, algorithm)
text_hash.delete("1.0", tk.END)
text_hash.insert(tk.END, hash_value)
def browse_file(text_path):
file_path = filedialog.askopenfilename()
text_path.delete("1.0", tk.END)
text_path.insert(tk.END, file_path)
root = tk.Tk()
root.title("哈希计算工具 By Johnny.Z")
# 第一行:选择文件按钮和文件路径输入框
browse_button = tk.Button(root, text="选择文件", width=15, command=lambda: browse_file(text_path))
browse_button.grid(row=0, column=0, padx=10, pady=10)
text_path = tk.Text(root, width=50, height=2, wrap=tk.WORD)
text_path.grid(row=0, column=1, padx=10, pady=10)
# 第二行:三个算法选择按钮
algorithm_var = tk.StringVar()
algorithm_var.set('SHA256') # 默认选中 SHA256
frame = tk.Frame(root) # 创建一个框架来容纳按钮
frame.grid(row=1, column=0, columnspan=2, padx=10, pady=10) # 框架占据两列
sha256_button = tk.Radiobutton(frame, text="SHA256", variable=algorithm_var, value='SHA256')
sha256_button.pack(side=tk.LEFT, padx=10)
sha1_button = tk.Radiobutton(frame, text="SHA1", variable=algorithm_var, value='SHA1')
sha1_button.pack(side=tk.LEFT, padx=10)
md5_button = tk.Radiobutton(frame, text="MD5", variable=algorithm_var, value='MD5')
md5_button.pack(side=tk.LEFT, padx=10)
# 第三行:计算哈希值按钮和哈希值输入框
calculate_button = tk.Button(root, text="计算哈希值", width=15, command=lambda: update_hash(text_path, text_hash, algorithm_var))
calculate_button.grid(row=2, column=0, padx=10, pady=10)
text_hash = tk.Text(root, width=50, height=2, wrap=tk.WORD)
text_hash.grid(row=2, column=1, padx=10, pady=10)
root.mainloop()
打包exe独立程序
在py文件目录地址栏输入cmd,输入以下命令打包exe,如要改exe程序logo,在py同目录自备logo.ico文件,最终exe文件在dist文件夹下
-
pyinstaller -F test.py -ntest #打包不带logo的exe
-
pyinstaller -F -w -i logo.ico test.py -ntest #打包带logo的exe