hashboi.py 948 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env python3
  2. # -*- coding: utf8 -*-
  3. import os
  4. import sys
  5. import shutil
  6. import hashlib
  7. import pathlib
  8. import argparse
  9. if __name__ == '__main__':
  10. parser = argparse.ArgumentParser()
  11. parser.add_argument('-d', '--dir', dest='inputDirectory')
  12. parser.add_argument('-o', '--out', dest='outputDirectory', default='hashes')
  13. args = parser.parse_args()
  14. if not args.inputDirectory:
  15. sys.exit()
  16. if not os.path.isdir(args.outputDirectory):
  17. os.mkdir(args.outputDirectory)
  18. for filepath in pathlib.Path(args.inputDirectory).rglob('*'):
  19. if os.path.isdir(filepath):
  20. continue
  21. with open(filepath, 'rb') as bytefile:
  22. hashname = hashlib.sha256(bytefile.read()).hexdigest()
  23. pathname = os.path.join(args.outputDirectory, hashname)
  24. if not os.path.isfile(pathname):
  25. shutil.copyfile(filepath, pathname)