MD5散列相同目录中的所有罚款-此类文件或目录没有错误

问题描述 投票:1回答:1

我想为目录中的每个文件生成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)
python md5 file-not-found
1个回答
0
投票
使用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)

© www.soinside.com 2019 - 2024. All rights reserved.