python

超轻量级php框架startmvc

利用python计算windows全盘文件md5值的脚本

更新时间:2020-07-18 17:48:02 作者:startmvc
importhashlibimportosimporttimeimportconfigparserimportuuiddeftest_file_md5(file_path):test=hashlib.md5()ifos.path.isfil

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值 脚本