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

利用python计算windows全盘文件md5值的脚本,第1张

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

结果如下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3260992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-04
下一篇 2022-10-04

发表评论

登录后才能评论

评论列表(0条)

保存