Advertisement
Guest User

Jason Merge

a guest
Nov 10th, 2022
502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.89 KB | Photo | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. """
  4.    json_merge.py: tool to merge .json & .jpeg folder from Google Photos exports
  5.    json_merge.py is copyright 2020 Jeroen Doggen.
  6. """
  7.  
  8.  
  9. import os
  10. import argparse
  11. import shutil
  12.  
  13. parser = argparse.ArgumentParser()
  14. parser.add_argument("folder", help="the folder that should be processed")
  15. args = parser.parse_args()
  16.  
  17. file_counter = 0
  18.  
  19. print("\nMerging .json & .jpg files...")
  20. for subdir, dirs, files in os.walk(args.folder):
  21.     for filename in files:
  22.         filepath = subdir + os.sep + filename
  23.  
  24.         json_end_string = ").json"
  25.         jpeg_end_string = ".jpg"
  26.  
  27.         if filepath.endswith(json_end_string):
  28.             # print("JPEG file: " + filename)
  29.  
  30.             base_name = filename.rstrip(json_end_string)
  31.  
  32.             last = ""
  33.             number = ""
  34.  
  35.             while base_name.__len__() > 0:
  36.                 last = base_name[-1:]
  37.                 base_name = base_name[:-1]
  38.                 if last is '(':
  39.                     break
  40.                 else:
  41.                     number += last
  42.  
  43.             try:
  44.                 number = int(number)
  45.             except:
  46.                 print("Invalid number: " + str(number))
  47.  
  48.             if base_name.endswith(jpeg_end_string):
  49.                 # print("JPEG base name: " + base_name)
  50.                 base_name = base_name.rstrip(jpeg_end_string)
  51.  
  52.                 new_name = base_name + '(' + str(number) + ')' + ".jpg.json"
  53.                 # print("New name: " + new_name)
  54.  
  55.                 filepath_new = subdir + os.sep + new_name
  56.  
  57.                 try:
  58.                     shutil.copyfile(filepath, filepath_new)
  59.                     print(str(file_counter+1) + ". Copied: " + filepath + " --> " + filepath_new)
  60.                     file_counter += 1
  61.                 except:
  62.                     print("Copy failed: " + filepath)
  63.  
  64. print("Number of merged files: " + str(file_counter))
  65.  
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement