Python 对同一目录中的所有罚款进行MD5哈希-错误:没有这样的文件或目录
我想为目录中的每个文件生成md5,但实际上我总是遇到同样的问题:Python 对同一目录中的所有罚款进行MD5哈希-错误:没有这样的文件或目录,python,md5,file-not-found,Python,Md5,File Not Found,我想为目录中的每个文件生成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: FileNotFoundEr
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'
使用
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)
使用
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)
肯定有个地方有个骗局这件事一直在发生。。。os.listdir只返回文件名,而不是其目录,因此您需要
os.path.join(参数\u path.path\u dir\u in,文件名)
。。。另外,您不应该使用文件作为变量名,因为它会隐藏内置项(可能不会破坏任何东西,但形式不好)哦,好的,谢谢,我理解了!“文件”是内置的吗?我们说的是蟒蛇2还是蟒蛇3?肯定有个地方一直在出现这种情况。。。os.listdir只返回文件名,而不是其目录,因此您需要os.path.join(参数\u path.path\u dir\u in,文件名)
。。。另外,您不应该使用文件作为变量名,因为它会隐藏内置项(可能不会破坏任何东西,但形式不好)哦,好的,谢谢,我理解了!“文件”是内置的吗?我们说的是python2还是python3?我建议改为使用pathlib.Path()和pathlib.Path().iterdir()。我建议改为使用pathlib.Path()和pathlib.Path().iterdir()。