Python如何设置指定图片路径完成哈希计算 替代全目录遍历图片逻辑
代码调整方案
原代码的核心冗余部分是递归遍历目录的全量扫描逻辑,要改成仅处理指定图片的模式,不需要保留目录遍历、后缀筛选的功能,具体改动如下:
- 移除原代码中的目录递归函数
get_images、图片后缀列表image_ext,这两个模块是为全目录扫描设计的,单文件处理场景下完全用不到 - 保留原有的日志配置、SHA256哈希计算核心函数,仅在函数内补充简单的路径存在性校验,避免路径写错时抛出模糊的无意义报错
- 单独划出明确的配置区块,用来填写需要处理的目标图片路径,支持单张/多张自定义配置
修改后完整代码
import os import hashlib import logging # 日志写入逻辑和原代码保持一致,哈希结果输出到InitializationHash.txt logging.basicConfig(filename='InitializationHash.txt', level=logging.INFO, format='%(message)s') def hash_image(filepath): # 前置校验:确认传入路径是真实存在的文件 if not os.path.isfile(filepath): raise FileNotFoundError(f"无法读取文件,路径无效:{filepath}") with open(filepath, 'rb') as f: file_bytes = f.read() hash_text = hashlib.sha256(file_bytes).hexdigest() # 日志中同时记录文件路径和哈希值,方便后续溯源 logging.info(f"文件:{os.path.abspath(filepath)},哈希值:{hash_text}") if __name__ == '__main__': # ================================== 目标图片配置区(直接改这里的路径即可) ================================== # 单张图片写法:把目标图片的绝对/相对路径填到列表里,Windows路径建议加r前缀,避免反斜杠被转义出错 # 示例路径:r"C:\Users\admin\Desktop\TD\image.png" # 多张图片写法:列表里逐行添加路径即可,例如: # target_images = [ # r"C:\Users\admin\Desktop\TD\image1.png", # r"C:\Users\admin\Desktop\TD\image2.jpg" # ] target_images = [ r"C:\Users\admin\Desktop\TD\image.png" ] # ======================================================================================================== # 循环处理所有配置的目标图片 for img_path in target_images: hash_image(img_path)
使用说明
- 路径配置支持绝对路径(比如示例中的桌面文件路径),也支持相对路径(如果图片和当前Python脚本在同一个文件夹,直接写文件名即可,比如
"./test.png") - 程序运行后不会自动扫描任何文件夹下的图片,只会处理你在配置区写进列表的文件,不会出现误计算其他图片的情况
- 日志文件
InitializationHash.txt里会同时记录文件完整路径和对应的SHA256哈希值,不会出现哈希值和文件无法对应的问题
内容的提问来源于stack exchange,提问作者Ely Attallah
相关产品推荐
相关产品推荐

