Python实现计算文件hash代码
Python实现计算文件md5样例
最近有个小需求是计算整个文件的md5值,之前有收藏过一个小工具可以便捷实现md5/hash的计算,但是找不到了,自己实现起来也不太难,不想花费在这里太多时间,于是网上找到了个现成的代码样例,写的挺好,刚好能满足现在的需求。在此转载记录一下。
代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
import hashlib import tkinter import tkinter.messagebox import tkinter.filedialog from tkinter import *
def hash(file_path, Bytes=1024): md5_1 = hashlib.md5() with open(file_path, 'rb') as f: while 1: data = f.read(Bytes) if data: md5_1.update(data) else: break ret = md5_1.hexdigest() return ret
def clickbrowser(): filenames = tkinter.filedialog.askopenfilenames() if len(filenames) != 0: path.set(filenames[0]) pass
def clickfun(file_path): if file_path == "": tkinter.messagebox.showinfo(title='提示', message='请输入文件路径') return output.set(hash(file_path)) pass
top = tkinter.Tk() top.resizable(0, 0) top.title("文件 hash 值计算") path = StringVar(top, value='') output = StringVar(top, value='')
label = tkinter.Label(top, text='输入文件路径:') inputEntry = tkinter.Entry(top, width=50, textvariable=path) btBrowser = tkinter.Button(top, text="浏览", command=lambda: clickbrowser()) btClick = tkinter.Button(top, text="计算文件 hash", command=lambda: clickfun(inputEntry.get())) olabel = tkinter.Label(top, text='输出 hash:') outputEntry = tkinter.Entry(top, width=50, textvariable=output)
label.grid(row=0, column=0) inputEntry.grid(row=0, column=1) btBrowser.grid(row=0, column=2) olabel.grid(row=1, column=0) outputEntry.grid(row=1, column=1) btClick.grid(row=1, column=2)
col_count, row_count = top.grid_size()
top.mainloop()
|
运行效果:
原文地址