61 lines
1.2 KiB
Python
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
|