bookscan_utils/rename16.py
2023-10-10 02:41:47 +03:00

61 lines
1.2 KiB
Python

#!/usr/bin/env python3
import os
import shutil
import natsort
from os.path import join
from argparse import ArgumentParser
mapping = (
1, 16,
15, 2,
3, 14,
13, 4,
5, 12,
11, 6,
7, 10,
9, 8,
)
def chunks(lst, n):
for i in range(0, len(lst), n):
yield lst[i:i + n]
if __name__ == '__main__':
parser = ArgumentParser()
parser.add_argument('--indir', type=str, required=True,
help='Input directory')
parser.add_argument('--outdir', type=str, required=True,
help='Output directory')
args = parser.parse_args()
if not os.path.exists(args.outdir):
os.mkdir(args.outdir)
files = os.listdir(args.indir)
files = natsort.natsorted(files)
offset = 0
for pages in chunks(files, 16):
if len(pages) == 16:
for i in range(16):
file = pages[i]
n = mapping[i]
new_name = str(offset + n) + '.pdf'
shutil.copyfile(
join(args.indir, file),
join(args.outdir, new_name)
)
print(f'{file} => {new_name}')
offset += 16
else:
break