padding folder files with zeros for correct order

pull/1/head
Castro0o 4 years ago
parent 59ba70bebb
commit 82a6404b40

@ -1,4 +1,4 @@
import os, json, re, shlex import os, json, re, shlex, sys
import subprocess import subprocess
from datetime import datetime from datetime import datetime
@ -124,29 +124,33 @@ def listimgs(dir):
def reorder_imgs(dir, dry): def reorder_imgs(dir, dry):
# does zero pad file numbers
lsimgs = listimgs(dir) lsimgs = listimgs(dir)
for img in lsimgs: for img in lsimgs:
img_name, img_ext = os.path.splitext(img) img_name, img_ext = os.path.splitext(img)
print(img)
# does file follow \d{1,}\.img_ext # does file follow \d{1,}\.img_ext
numb_exp = re.compile( numb_exp = re.compile(
r'(?P<name>.*?)(?P<num>\d+)(?P<ext>%s)'% re.escape(img_ext)) r'(?P<name>.*?)(?P<num>\d+)(?P<ext>%s)'% re.escape(img_ext))
match = re.search(numb_exp, img) match = re.search(numb_exp, img)
if not match: if not match:
print(f'Image {img} Filename is not suitable for bulk upload.' print(f'Image {img} Filename is not suitable for bulk upload.'
f'Filename pattern does not match 1.jpg 01.jpg' f'Filename pattern dn\'t match 1.jpg 01.jpg something01.jpg'
f'You have to DO IT MANUALLY') f'You have to DO IT MANUALLY')
sys.exit()
else: else:
# only change name of single digit numbers # only change name of single digit numbers
if len(match.groupdict()['num']) == 1: if len(match.groupdict()['num']) == 1:
name = match.groupdict()['name'] name = match.groupdict()['name']
num = match.groupdict()['num'].zfill(2) # pad with 0 num = match.groupdict()['num'].zfill(3) # pad with 0s
ext = match.groupdict()['ext'] ext = match.groupdict()['ext']
new_img = name + num + ext new_img = name + num + ext
src_img = os.path.join(dir, img)
dst_img = os.path.join(dir, new_img)
print(f'Renaming: {img} >>>>> {new_img}')
if dry == False: if dry == False:
os.rename(os.path.join(dir, img), os.replace(src_img, dst_img)
os.path.join(dir, new_img)) lsimgs = listimgs(dir) # update list w/ renamed imgs
print(f'Renaming: {img} >>>>> {new_img}') return listimgs(dir)
return listimgs(dir)

@ -44,7 +44,6 @@ elif len(list(site.ask(f'[[Title::{args.title}]]'))) > 0:
sys.exit() sys.exit()
# TODO os.listdir(args.dir) ORDER!
lsimgs = reorder_imgs(dir=args.dir, dry=args.dry) lsimgs = reorder_imgs(dir=args.dir, dry=args.dry)

Loading…
Cancel
Save