zoukankan      html  css  js  c++  java
  • 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_())
  • 相关阅读:
    我的第九个java程序--spring和mybatis整合(java project)
    php 批量插入字段
    php 遍历静态html成文章列表
    把world转成html
    java 读取world的图片 并把图片路径存入数据库
    我的第八个java程序--读取word内容
    我的第7个java程序--把java web项目改为java project项目--mybatis
    我的第六个java程序 spring-bean
    学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用
    学习spring1--跟我一起学Spring 3(2)–开发环境配置
  • 原文地址:https://www.cnblogs.com/roc-fly/p/10103138.html
Copyright © 2011-2022 走看看