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

结果如下

利用python计算windows全盘文件md5值的脚本详解编程语言

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/20842.html

(0)
上一篇 2021年7月19日 23:50
下一篇 2021年7月19日 23:50

相关推荐

发表回复

登录后才能评论