Python校驗文件MD5值


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_())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM