我正在尝试编写一个Python脚本,以获取目录中所有文件的md5sum(在Linux上)。 我相信我已经在下面的代码中完成了这个任务。
我希望能够运行此脚本以确保目录中没有更改的文件,并且没有添加或删除任何文件。
问题是,如果我更改目录中的文件,然后又将其更改回来。我从运行下面的函数中得到不同的结果。(即使我已将修改的文件改回原样)
有人能解释一下吗? 如果您想到了解决方法,请告诉我。
我希望能够运行此脚本以确保目录中没有更改的文件,并且没有添加或删除任何文件。
问题是,如果我更改目录中的文件,然后又将其更改回来。我从运行下面的函数中得到不同的结果。(即使我已将修改的文件改回原样)
有人能解释一下吗? 如果您想到了解决方法,请告诉我。
def get_dir_md5(dir_path):
"""Build a tar file of the directory and return its md5 sum"""
temp_tar_path = 'tests.tar'
t = tarfile.TarFile(temp_tar_path,mode='w')
t.add(dir_path)
t.close()
m = hashlib.md5()
m.update(open(temp_tar_path,'rb').read())
ret_str = m.hexdigest()
#delete tar file
os.remove(temp_tar_path)
return ret_str
编辑: 正如这些好心人所回答的那样,tar似乎包含了日期修改等头部信息。使用zip或其他格式会有什么不同吗?
还有其他解决方法吗?