add renaming jpg-files with <Date>_<Time> as option
This commit is contained in:
parent
f59c7bf8cd
commit
747a7dd15f
26
recovery.py
26
recovery.py
|
@ -5,6 +5,8 @@ from time import localtime, strftime
|
||||||
import shutil
|
import shutil
|
||||||
import jpgSorter
|
import jpgSorter
|
||||||
import numberOfFilesPerFolderLimiter
|
import numberOfFilesPerFolderLimiter
|
||||||
|
import exifread
|
||||||
|
from time import localtime, strftime, strptime, mktime
|
||||||
|
|
||||||
|
|
||||||
def getNumberOfFilesInFolderRecursively(start_path = '.'):
|
def getNumberOfFilesInFolderRecursively(start_path = '.'):
|
||||||
|
@ -57,6 +59,7 @@ def get_args():
|
||||||
parser.add_argument('-m', '--split-months', action='store_true', required=False, help='split JPEG files not only by year but by month as well')
|
parser.add_argument('-m', '--split-months', action='store_true', required=False, help='split JPEG files not only by year but by month as well')
|
||||||
parser.add_argument('-k', '--keep_filename', action='store_true', required=False, help='keeps the original filenames when copying')
|
parser.add_argument('-k', '--keep_filename', action='store_true', required=False, help='keeps the original filenames when copying')
|
||||||
parser.add_argument('-d', '--min-event-delta', type=int, default=4, required=False, help='minimum delta in days between two days')
|
parser.add_argument('-d', '--min-event-delta', type=int, default=4, required=False, help='minimum delta in days between two days')
|
||||||
|
parser.add_argument('-j', '--date_time_filename', action='store_true', required=False, help='sets the filename to the exif date and time if possible - otherwise set filename depending on -k')
|
||||||
|
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
@ -67,7 +70,7 @@ splitMonths = False
|
||||||
source = None
|
source = None
|
||||||
destination = None
|
destination = None
|
||||||
keepFilename = False
|
keepFilename = False
|
||||||
|
date_time_filename = False
|
||||||
|
|
||||||
args = get_args()
|
args = get_args()
|
||||||
source = args.source
|
source = args.source
|
||||||
|
@ -75,12 +78,15 @@ destination = args.destination
|
||||||
maxNumberOfFilesPerFolder = args.max_per_dir
|
maxNumberOfFilesPerFolder = args.max_per_dir
|
||||||
splitMonths = args.split_months
|
splitMonths = args.split_months
|
||||||
keepFilename = args.keep_filename
|
keepFilename = args.keep_filename
|
||||||
|
date_time_filename = args.date_time_filename
|
||||||
minEventDeltaDays = args.min_event_delta
|
minEventDeltaDays = args.min_event_delta
|
||||||
|
|
||||||
print("Reading from source '%s', writing to destination '%s' (max %i files per directory, splitting by year %s)." %
|
print("Reading from source '%s', writing to destination '%s' (max %i files per directory, splitting by year %s)." %
|
||||||
(source, destination, maxNumberOfFilesPerFolder, splitMonths and "and month" or "only"))
|
(source, destination, maxNumberOfFilesPerFolder, splitMonths and "and month" or "only"))
|
||||||
if keepFilename:
|
if keepFilename:
|
||||||
print("I will keep you filenames as they are")
|
print("I will keep you filenames as they are")
|
||||||
|
elif date_time_filename:
|
||||||
|
print("If possible I will rename your files like <Date>_<Time>.jpg - otherwise keep you filenames as they are")
|
||||||
else:
|
else:
|
||||||
print("I will rename your files like '1.jpg'")
|
print("I will rename your files like '1.jpg'")
|
||||||
|
|
||||||
|
@ -106,8 +112,26 @@ for root, dirs, files in os.walk(source, topdown=False):
|
||||||
|
|
||||||
if not os.path.exists(destinationDirectory):
|
if not os.path.exists(destinationDirectory):
|
||||||
os.mkdir(destinationDirectory)
|
os.mkdir(destinationDirectory)
|
||||||
|
|
||||||
if keepFilename:
|
if keepFilename:
|
||||||
fileName = file
|
fileName = file
|
||||||
|
|
||||||
|
elif date_time_filename:
|
||||||
|
index = 0
|
||||||
|
image = open(sourcePath, 'rb')
|
||||||
|
exifTags = exifread.process_file(image, details=False)
|
||||||
|
image.close()
|
||||||
|
creationTime = jpgSorter.getMinimumCreationTime(exifTags)
|
||||||
|
try:
|
||||||
|
creationTime = strptime(str(creationTime), "%Y:%m:%d %H:%M:%S")
|
||||||
|
creationTime = strftime("%Y%m%d_%H%M%S", creationTime)
|
||||||
|
fileName = str(creationTime) + "." + extension.lower()
|
||||||
|
while os.path.exists(os.path.join(destinationDirectory, fileName)):
|
||||||
|
index += 1
|
||||||
|
fileName = str(creationTime) + "(" + str(index) + ")" + "." + extension.lower()
|
||||||
|
except:
|
||||||
|
fileName = file
|
||||||
|
|
||||||
else:
|
else:
|
||||||
fileName = str(fileCounter) + "." + extension.lower()
|
fileName = str(fileCounter) + "." + extension.lower()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue