利用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

结果如下

原文地址:https://www.cnblogs.com/bainianminguo/p/8485321.html