zoukankan      html  css  js  c++  java
  • 利用python计算windows全盘文件md5值的脚本

    import hashlib
    import os
    import time
    import configparser
    import uuid
    
    def test_file_md5(file_path):
        test = hashlib.md5()
    
        if os.path.isfile(file_path):
            with open(file_path, "rb") as f:
                while True:
                    data = f.read(8096)
                    if not data:
                        break
                    else:
                        test.update(data)
                ret = test.hexdigest()
                config = configparser.ConfigParser()
    
                config.read("E:/python/pycharm/再开次开始/前端/test_md5.ini",encoding="utf-8")
                if config.has_section(os.path.basename(file_path)):
                    new_section_name = str(os.path.basename(file_path)) + ":" + str(uuid.uuid4())
                    config[new_section_name] = {"文件路径":os.path.dirname(file_path),
                                     "md5值":ret}
                else:
                    config[os.path.basename(file_path)] = {"文件路径": os.path.dirname(file_path),
                                                    "md5值": ret}
                config.write(open("E:/python/pycharm/再开次开始/前端/test_md5.ini","w",encoding="utf-8"))
    
    
    
    def test_dir_md5(file_path):
        test_abs_path = os.path.abspath(file_path)
        # print(test_abs_path)
        os.chdir(test_abs_path)
        for file in os.listdir(os.getcwd()):
            if os.path.isfile(file):
                test_file_md5(os.path.abspath(file))
            elif os.path.isdir(file):
                test_dir_md5(os.path.abspath(file))
            else:
                pass
        # return True
    
    
    if __name__ == '__main__':
        began_path = os.getcwd()
        test_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(began_path))))
        os.chdir(test_path)
        print(os.listdir())
        for test_file in os.listdir():
            os.chdir(test_path)
            if os.path.abspath(test_file).startswith("E:\$"):
                continue
            else:
                if os.path.isfile(test_file):
                    # print("yyyyy")
                    test_file_md5(os.path.abspath(test_file))
                elif os.path.isdir(test_file):
                    # print("hahah")
                    test_dir_md5(os.path.abspath(test_file))
                    # print(os.path.abspath(test_file))
                else:
                    pass

    结果如下

  • 相关阅读:
    常用正则表达式
    C语言的指针与二维数组
    【原创】datalist实现简单分页功能
    【原创】datalist的页脚访问和控制
    [原创]手动删除顽固病毒总结
    [zz]复杂指针解析
    极度郁闷的一次电脑维修经历
    武汉城市地铁规划图
    [转]objc_msgSend 的 ARM 汇编分析
    [转]Cydia and XCode Local App Testing
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/8485321.html
Copyright © 2011-2022 走看看