簡體   English   中英

獲取子目錄在python的目錄下所有文件md5 hash

[英]Get all files md5 hash in a directory with subdirectories in python

我是 python 的新手。我想問一下,如何在包含子目錄的目錄中獲取所有 md5 hash 文件? 目前我的編碼只能獲取文件夾中文件的 md5 hash。 有什么建議或代碼需要更改嗎? 下面是我的編碼:

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)  

您可以通過定義以下 function 使用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=get_abs_paths('C:/Users/User/Desktop/irustesting')分配filenames變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM