9
arg_parser = argparse.ArgumentParser()
10
arg_parser.add_argument('target_dir', type=str,
11
metavar='TARGET_DIR', nargs='+')
13
args = arg_parser.parse_args()
14
hash_obj = hashlib.md5()
16
for directory in args.target_dir:
17
for path in sorted(get_paths(directory)):
18
hash_obj.update(path.encode('utf8'))
20
with open(path, 'rb') as f:
28
print(hash_obj.hexdigest())
30
def get_paths(directory):
31
for dirpath, dirnames, filenames in os.walk(directory):
32
for dirname in list(dirnames):
33
if dirname.startswith('.'):
34
dirnames.remove(dirname)
37
for filename in filenames:
38
if not filename.startswith('.') and not filename.endswith('~'):
39
yield os.path.join(dirpath, filename)
41
if __name__ == '__main__':