python - 获取python中带有子目录的目录中的所有文件md5哈希
问题描述
我是 python 新手。我想问一下,如何在带有子目录的目录中获取所有文件 md5 哈希?目前我的编码只能获取文件夹中文件的 md5 哈希值。任何建议或代码需要进行更改?下面是我的编码:
import hashlib
import glob
import os.path
filenames = glob.glob('C:/Users/User/Desktop/irustesting/*')
def md5(fname):
hash_md5 = hashlib.md5()
with open(fname, "rb") as f:
for chunk in iter(lambda: f.read(2 ** 20), b""):
hash_md5.update(chunk)
return hash_md5.hexdigest()
viruslist = open('C:/FYP/SecuCOM2022/viruslist.txt','rt')
virusinside = [l.rstrip() for l in viruslist]
virus="detected"
novirus="clear"
for filename in filenames:
print(filename, md5(filename))
if md5(filename) in virusinside:
print(virus)
os.remove(filename)
else:
print(novirus)
解决方案
os.walk()
您可以通过定义以下函数使用该方法检索文件的所有绝对路径:
import os
def get_all_abs_paths(rootdir):
paths = list()
for dirpath,_,filenames in os.walk(rootdir):
for f in filenames:
paths.append(os.path.abspath(os.path.join(dirpath, f)))
return paths
通过这种方式,您可以通过替换 glob 调用来使用您的代码来分配filenames
变量filenames=get_abs_paths('C:/Users/User/Desktop/irustesting')
推荐阅读
- javascript - Javascript在恢复功能之前等待按钮按下
- angular - 垫子图标不显示
- javascript - 如何使用 .env 文件制作登录屏幕?
- swift - RxSwift 和 AVKit 的问题
- python-3.x - 如何在 PyQt5 的列表小部件中添加图像?
- javascript - 带有 useEffect 和 React Native 的 socket.IO 不会多次更新 Redux 状态
- excel - 有没有办法在 32 位 Excel 的 VBA 中存储 64、128 或 256 字节值?
- html - 超过页面末尾的下拉菜单
- typescript - TypeScript 与数组的交集
- vba - 文本框限制为数字