Python校驗檔案MD5值
阿新 • • 發佈:2018-12-11
import hashlib import os def GetFileMd5(filename): if not os.path.isfile(filename): return myHash = hashlib.md5() f = open(filename,'rb') while True: b = f.read(8096) if not b : break myHash.update(b) f.close() return myHash.hexdigest() print(GetFileMd5('/Users/binyun007/Desktop/xxx')) #檔案路徑
視窗模式, 需要pip安裝PyQt5
import sys import os import hashlib from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox from PyQt5.Qt import QLineEdit class App(QWidget): def __init__(self): super().__init__() self.title = 'MD5校驗' self.left = 800 self.top= 600 self.width = 320 self.height = 200 self.initUI() def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) # create textbox self.textbox = QLineEdit(self) # self.textbox.setText('/Users/binyun007/Desktop/') #設定文字框的預設值self.textbox.setText(FileRecord.readpath()) #讀取文字框的預設值 self.textbox.move(20, 20) self.textbox.resize(280, 40) # Create a button in the window self.button = QPushButton('校驗', self) self.button.move(20, 80) # connect button to function on_click self.button.clicked.connect(self.on_click) self.show() def on_click(self): textboxValue = self.textbox.text() md5 = GetFileMd5(textboxValue) QMessageBox.question(self, "Message", 'MD5:' + md5, QMessageBox.Ok,QMessageBox.Ok) """列印完畢之後設定文字框預設值為上一次使用後的""" FileRecord.writpath(textboxValue) #self.textbox.setText(textboxValue) # #儲存、讀取MD5記錄 class FileRecord(): #儲存 def writpath(filepath): with open('md5.txt','w') as f: f.write(filepath) #讀取 def readpath(): try: with open('md5.txt','r') as f: record = f.readline() return record #如果檔案不存在建立 except FileNotFoundError: with open('md5.txt','w') as f: return #校驗MD5值 def GetFileMd5(filename): if not os.path.isfile(filename): return myHash = hashlib.md5() f = open(filename,'rb') while True: b = f.read(8096) if not b : break myHash.update(b) f.close() return myHash.hexdigest() if __name__ == '__main__': app = QApplication(sys.argv) ex = App() app.exit(app.exec_())