Chore: Move to functions
This makes it easy to add new functions and features Added Removal of empty directories Added root function to control flow and make development easier
This commit is contained in:
parent
e1b32be718
commit
3bb1600e62
@ -7,15 +7,31 @@ import pathlib
|
|||||||
from PIL import Image, ExifTags
|
from PIL import Image, ExifTags
|
||||||
import pendulum
|
import pendulum
|
||||||
|
|
||||||
INGEST_DIR = pathlib.PureWindowsPath(r'E:\DCIM\103ND810')
|
INGEST_DIR = pathlib.PureWindowsPath(
|
||||||
|
r'C:\Users\ahosking\Nextcloud\Camera Uploads\Alex\2022')
|
||||||
PHOTO_LIBRARY = '//192.168.1.4/photos/photo_library/'
|
PHOTO_LIBRARY = '//192.168.1.4/photos/photo_library/'
|
||||||
file_list = os.listdir(INGEST_DIR)
|
# TODO: Add dircectory traversal
|
||||||
# print(file_list)
|
file_list = []
|
||||||
move_list = []
|
|
||||||
|
|
||||||
for item in file_list:
|
|
||||||
|
def compare_and_move():
|
||||||
|
# move_list = []
|
||||||
|
for root, d_names, f_names in os.walk(INGEST_DIR, topdown=False):
|
||||||
|
for file in f_names:
|
||||||
|
file_name = os.path.join(root, file)
|
||||||
|
print(file_name)
|
||||||
|
file_list.append(file_name)
|
||||||
|
print(root, d_names, f_names)
|
||||||
|
print(file_list)
|
||||||
|
print(len(file_list))
|
||||||
|
process_files(file_list)
|
||||||
|
remove_empty_directories(INGEST_DIR)
|
||||||
|
|
||||||
|
|
||||||
|
def process_files(file_list):
|
||||||
|
for item in file_list:
|
||||||
cur_file = pathlib.Path(os.path.join(INGEST_DIR, item))
|
cur_file = pathlib.Path(os.path.join(INGEST_DIR, item))
|
||||||
# print(cur_file)
|
print(cur_file)
|
||||||
# print("last modified: %s" % time.ctime(os.path.getmtime(cur_file)))
|
# print("last modified: %s" % time.ctime(os.path.getmtime(cur_file)))
|
||||||
# created_date = cur_file.stat().st_ctime
|
# created_date = cur_file.stat().st_ctime
|
||||||
|
|
||||||
@ -29,8 +45,12 @@ for item in file_list:
|
|||||||
parsed_date = pendulum.parse(created_date, strict=False)
|
parsed_date = pendulum.parse(created_date, strict=False)
|
||||||
|
|
||||||
filename, file_extension = os.path.splitext(item)
|
filename, file_extension = os.path.splitext(item)
|
||||||
filename = item # Critical to the process
|
filename = os.path.basename(item).split(
|
||||||
if not file_extension.lower() in (".nef", ".jpg", ".mp4"):
|
'/')[-1] # Critical to the process
|
||||||
|
print()
|
||||||
|
print(filename)
|
||||||
|
print()
|
||||||
|
if not file_extension.lower() in (".nef", ".jpg", ".mp4", ".mov"):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# print(filename, file_extension)
|
# print(filename, file_extension)
|
||||||
@ -41,7 +61,8 @@ for item in file_list:
|
|||||||
year = str(parsed_date.year)
|
year = str(parsed_date.year)
|
||||||
month = str(parsed_date.month).zfill(2)
|
month = str(parsed_date.month).zfill(2)
|
||||||
day = str(parsed_date.day).zfill(2)
|
day = str(parsed_date.day).zfill(2)
|
||||||
destination = "%s%s/%s/%s/%s" % (PHOTO_LIBRARY, year, month, day, filename)
|
destination = "%s%s/%s/%s/%s" % (PHOTO_LIBRARY,
|
||||||
|
year, month, day, filename)
|
||||||
# print(destination)
|
# print(destination)
|
||||||
print("We want to move %s to %s%s/%s/%s." %
|
print("We want to move %s to %s%s/%s/%s." %
|
||||||
(filename, PHOTO_LIBRARY, year, month, day))
|
(filename, PHOTO_LIBRARY, year, month, day))
|
||||||
@ -51,10 +72,10 @@ for item in file_list:
|
|||||||
print("We couldn't find your directory.")
|
print("We couldn't find your directory.")
|
||||||
os.makedirs(os.path.join(PHOTO_LIBRARY, str(year)))
|
os.makedirs(os.path.join(PHOTO_LIBRARY, str(year)))
|
||||||
if not os.path.isdir(os.path.join(PHOTO_LIBRARY, str(year), str(month))):
|
if not os.path.isdir(os.path.join(PHOTO_LIBRARY, str(year), str(month))):
|
||||||
print("We couldn't find your directory, making year and month")
|
print("We couldn't find your directory, matching year and month")
|
||||||
os.makedirs(os.path.join(PHOTO_LIBRARY, str(year), str(month)))
|
os.makedirs(os.path.join(PHOTO_LIBRARY, str(year), str(month)))
|
||||||
if not os.path.isdir(os.path.join(PHOTO_LIBRARY, str(year), str(month), str(day))):
|
if not os.path.isdir(os.path.join(PHOTO_LIBRARY, str(year), str(month), str(day))):
|
||||||
print("We couldn't find your directory, making year month and day")
|
print("We couldn't find your directory, matching year month and day")
|
||||||
os.makedirs(os.path.join(PHOTO_LIBRARY,
|
os.makedirs(os.path.join(PHOTO_LIBRARY,
|
||||||
str(year), str(month), str(day)))
|
str(year), str(month), str(day)))
|
||||||
|
|
||||||
@ -68,5 +89,19 @@ for item in file_list:
|
|||||||
(cur_file, destination, cur_file))
|
(cur_file, destination, cur_file))
|
||||||
os.remove(cur_file)
|
os.remove(cur_file)
|
||||||
|
|
||||||
# TODO:
|
# TODO:
|
||||||
# Find files with no extension and save them + directory to a file
|
# Find files with no extension and save them + directory to a file
|
||||||
|
|
||||||
|
|
||||||
|
def remove_empty_directories(directory):
|
||||||
|
for root, d_names, f_names in os.walk(directory, topdown=False):
|
||||||
|
print(root, d_names, f_names)
|
||||||
|
if len(d_names) == 0 and len(f_names) == 0:
|
||||||
|
print("I want to remove:", root)
|
||||||
|
os.rmdir(root)
|
||||||
|
if not os.path.isdir(root):
|
||||||
|
print(root, "was removed.")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
compare_and_move()
|
||||||
|
Loading…
Reference in New Issue
Block a user