Я пытаюсь написать сценарий 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
Редактировать: Поскольку эти прекрасные люди ответили, это выглядит как TAL включает в себя информацию заголовка, как дата модифицирована. Использовал бы ZIP-работы по-другому или другому формату?
Любые другие идеи для работы вокруг?