[英]Generating one MD5/SHA1 checksum of multiple files in Python
我瀏覽了幾個關於在 Python 中計算文件校驗和的主題,但沒有一個回答關於多個文件中的一個總和的問題。 我在子目錄中有幾個文件,想確定其中一個或多個文件是否有任何變化。 有沒有辦法從多個文件中生成一個總和?
編輯:這是我獲取總和列表的方式:
checksums = [(fname, hashlib.md5(open(fname, 'rb').read()).digest()) for fname in flist]
所以我做到了:)這樣,就為文件列表生成了一個哈希值。
hash_obj = hashlib.md5(open(flist[0], 'rb').read())
for fname in flist[1:]:
hash_obj.update(open(fname, 'rb').read())
checksum = hash_obj.digest()
謝謝PM 2Ring的輸入!
請注意,md5已被破解,因此只能將其用於非安全性至關重要的目的。
比Artur的回答略干凈。 無需特別對待第一個元素。
def calculate_checksum(filenames):
hash = hashlib.md5()
for fn in filenames:
if os.path.isfile(fn):
hash.update(open(fn, "rb").read())
return hash.digest()
(如果願意,可以刪除os.path.isfile()
。)
import subprocess
cmd =input("Enter the command : ")
trial = subprocess.run(["powershell","-Command",cmd])
#Powershell command : Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "filepath\*.*" -Recurse -force)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.