Skip to content

Instantly share code, notes, and snippets.

@veirus
Last active May 14, 2018 06:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save veirus/ebf7414528ac24d96ef3387a724a6c2f to your computer and use it in GitHub Desktop.
Save veirus/ebf7414528ac24d96ef3387a724a6c2f to your computer and use it in GitHub Desktop.
DROR updated for Python 3.6
#!/usr/bin/env python3.6
# dror - datetime format edition
# Based on https://gist.github.com/dansku/9040240#file-dropboxorganize-py
# 2018-05-14: convert to Pathlib; remove .encode('utf-8'); add alt output template
__verstion__ = '0.5.2'
import os.path
import glob
from datetime import date
from pathlib import Path
def move(files, newname):
# Move files
try:
os.rename(files, newname)
except FileExistsError:
print(f'[!] File {newname} already exists, removing duplicate.')
os.remove(files)
else:
# is encode is necessary?
print(f'Movendo: {files} --> {newname}')
def filelistgen(topdir='.'):
return (i for f in fileFormats for i in glob.iglob(os.path.realpath(f'{topdir}\\*.{f}')))
def main(method=0):
folder = os.getcwd()
print(folder)
root = Path(folder)
fileFormats = ('ai', 'bmp', 'cdr', 'jpg', 'jpg_large', 'jpg-large', 'jpg-orig', 'jpeg',
'mov', 'png', 'png-large', 'png-orig', 'jpg_orig',
'png_orig', 'pdf', 'psd', 'mp4', 'gif', 'webm', 'webp',
'svg', 'flv')
twi = ('jpg_large', 'jpg-large', 'jpg-orig', 'png-large', 'png-orig', 'jpg_orig', 'png_orig')
months = ('January', 'February', 'March', 'April', 'May', 'June', 'July',
'August', 'September', 'October', 'November', 'December')
filelist = (os.path.realpath(i) for f in fileFormats for i in glob.iglob(f'*.{f}'))
for files in filelist:
fixed = ''
# Retrieving creation date (getctime() is Windows only):
ctime = date.fromtimestamp(os.path.getctime(files))
newsub = root / f'{ctime:%Y-%m-%d}'
if method:
newsub = root / f'{ctime:%Y}' / f'{ctime:%m}'
if files.endswith(twi):
fixed = os.path.splitext(files)[0] + os.path.splitext(files)[1][:4]
newname = newsub / os.path.basename(fixed or files)
# folder exists? if not, create them!
if not os.path.exists(newsub):
print('Making dir:', newsub)
os.makedirs(newsub)
move(files, newname)
print(f"Done :)\nwith method={method}")
if __name__ == '__main__':
main(0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment