python - 同一目录中所有罚款的 MD5 散列 - 错误没有这样的文件或目录
问题描述
我想为目录中的每个文件生成 md5 但实际上我总是遇到同样的问题:
Traceback (most recent call last):
File "generate_md5.py", line 43, in <module>
generate_dir(argument_path)
File "generate_md5.py", line 29, in generate_dir
with open(file, "rb") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'test.xsd'
我不明白问题出在哪里?
parser = ArgumentParser()
parser.add_argument('-idir', '--input_dir', help='directory', dest='path_dir_in')
argument_path = parser.parse_args()
def generate_dir(argument_path):
hash_md5 = hashlib.md5()
for file in os.listdir(argument_path.path_dir_in):
with open(file, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
print("Name :" + file)
print(hash_md5.hexdigest())
file_md5 = GenerateTxt()
file_md5.write_file_txt([hash_md5.hexdigest()], file)
解决方案
用于os.list.dir
显示所有文件,然后os.path.join
打开目录中的所有文件:
def generate_dir(argument_path):
hash_md5 = hashlib.md5()
for filename in os.listdir(argument_path.path_dir_in):
with open(os.path.join(argument_path.path_dir_in, filename), "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
print("Name :" + filename)
print(hash_md5.hexdigest())
file_md5 = GenerateTxt()
file_md5.write_file_txt([hash_md5.hexdigest()], filename)
推荐阅读
- c# - 调用隐藏接口方法
- go - 如何设计一个在另一个对等点上调用相同的链代码?
- node.js - ExpressJS:无法使用passport.js登录
- azure - 将 Azure DevOps 变量拉入 ARM 模板
- python - 在 3D 图中的 x 轴上添加日期标签(python)
- python - 我似乎无法删除值包含某个字符串的字典的键,为什么?
- django - Django 条件渲染模板
- deep-learning - IndexError: Target -1 is out of bounds error in tabular learner fatai2
- c - C 错误:无法将 'pile {aka pp}' 转换为 'pile** {aka pp**}
- ssl - 安全连接失败 - ColdFusion 2018