当前位置:   article > 正文

Python校验文件MD5值

python校验文件md5
  1. import hashlib
  2. import os
  3. def GetFileMd5(filename):
  4. if not os.path.isfile(filename):
  5. return
  6. myHash = hashlib.md5()
  7. f = open(filename,'rb')
  8. while True:
  9. b = f.read(8096)
  10. if not b :
  11. break
  12. myHash.update(b)
  13. f.close()
  14. return myHash.hexdigest()
  15. 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_())

 

转载于:https://www.cnblogs.com/roc-fly/p/10103138.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/340174
推荐阅读
相关标签
  

闽ICP备14008679号