-
Notifications
You must be signed in to change notification settings - Fork 1
/
fixFiles.py
48 lines (40 loc) · 1.49 KB
/
fixFiles.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import sys
import os
from os.path import isfile, isdir, join
from os.path import expanduser
import shutil
import click
@click.command()
@click.option('--sourcefolder', prompt='Base folder containing all your stacks')
@click.option('--badstack', prompt='The name of the bad stack')
@click.option('--num', prompt='Number of bad images in bad stack', type=int)
def fixfolder(sourcefolder, badstack, num):
"""Program to fix missing photos in gigamacro stacks."""
childrenStacks = [f for f in os.listdir(sourcefolder) if isdir(join(sourcefolder, f))]
childrenStacks.sort()
fileCountList = []
foundBadStack = False
pathToBadStack = None
badFiles = []
negativeNum = -1 * num
for stack in childrenStacks:
pathToStack = sourcefolder + "/" + stack
if(stack == badstack):
foundBadStack = True
pathToBadStack = pathToStack
if(foundBadStack):
if(len(badFiles) > 0):
for badFile in badFiles:
print("moving: " + badFile)
shutil.move(badFile, pathToStack)
files = [os.path.join(pathToStack, f) for f in os.listdir(
pathToStack) if isfile(join(pathToStack, f))]
files.sort()
badFiles = files[negativeNum:]
if(len(badFiles) > 0):
for badFile in badFiles:
print("removing: " + badFile)
os.remove(badFile)
badFiles = []
if __name__ == '__main__':
fixfolder()