You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写循环批量计算SHA256_HASHES_pack1中所有文件的MD5值

修改后的代码
import hashlib  # 补充原代码缺失的库导入

SHA256_HASHES_pack1 = ['md5.txt', 'md51.txt', 'SHA256-Hashes_pack2.txt']
BUF_SIZE = 65536  # 定义缓冲区大小,原代码未声明该变量

for filename in SHA256_HASHES_pack1:
    # 每次处理新文件时重新初始化哈希对象,避免累加计算
    md5 = hashlib.md5()
    sha1 = hashlib.sha1()
    
    try:
        with open(filename, 'rb') as f:
            while True:
                data = f.read(BUF_SIZE)
                if not data:
                    break
                md5.update(data)
                sha1.update(data)
        
        print(f"文件 {filename} 的哈希值:")
        print(f"MD5: {md5.hexdigest()}")
        print(f"SHA1: {sha1.hexdigest()}")
        print("------------------------")
    except FileNotFoundError:
        print(f"错误:文件 {filename} 不存在")
关键修改说明
  • 补充了hashlib库的导入,原代码缺少此部分会直接报错
  • 定义了BUF_SIZE变量,修复原代码未声明变量的问题
  • 用for循环遍历列表内所有文件名,替换原代码仅处理单个文件的逻辑
  • 每次循环重新创建md5和sha1对象,确保每个文件的哈希计算独立,不会累计之前文件的内容
  • 添加异常处理,避免因文件不存在导致程序中断
  • 使用f-string格式化输出,让结果更直观清晰

内容的提问来源于stack exchange,提问作者Abdul Manan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:27:08