-
Notifications
You must be signed in to change notification settings - Fork 0
/
Renamer.py
72 lines (61 loc) · 2.11 KB
/
Renamer.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
"""
Python 3.x code to rename all the files inside all the subsequent directories as the parent directory name
Version 1.0.3.1
Changelog:
- Added prints for the current working dirs
- Moved the trademark from the main function
- Typo fix
"""
import os
def main():
test = True
while test:
input_opt = input("One folder (1) or the entire tree of one folder (2)? ")
if input_opt == "1":
input_dir = input("Base folder: ")
if_single(input_dir)
print("Job is done! Enjoy!")
test = False
elif input_opt == "2":
input_dir = input("Base folder: ")
if_dir(input_dir)
print("Job is done! Enjoy!")
test = False
else:
print("Please insert a valid option!\n", )
test = True
def if_dir(input_dir):
source = input_dir
print(f"Working on {source}")
for filename in enumerate(os.listdir(source)):
if os.path.isdir(os.path.join(source, filename[1])): # This tests if we have a file or a folder
path = os.path.join(source, filename[1])
if_dir(path)
else:
if_file(filename, source)
def if_single(input_dir):
source = input_dir
print(f"Working on {source}")
for filename in enumerate(os.listdir(source)):
if_file(filename, source)
def if_file(filename, source):
counter = 0
ext = filename[1].split(".")[-1] # File extension
a = 0
while a == 0: # We try to rename until we find an open slot
try:
dst = str(source.split("\\")[-1]) + "_" + str(counter) + "." + ext.lower()
src = os.path.join(source, filename[1])
dst = os.path.join(source, dst)
os.rename(src, dst)
counter += 1
a = 1
except FileExistsError:
a = 0
counter += 1
if __name__ == '__main__':
prompt = "y"
print("Welcome to the simple ReNamer tool! V1.0.3.1", "Developed by KazzyJr", "(c)2020-2021", sep='\n')
while prompt == "y":
main()
prompt = input("Do you want to rename another base directory? y/n ")