-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrename_files.py
73 lines (57 loc) · 2.09 KB
/
rename_files.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
73
#!/.venv/bin/python3
# -*- coding: utf-8 -*-
""""""
import os
import argparse
# --------------------------------------------------
def get_args() -> argparse.Namespace:
""""""
parser = argparse.ArgumentParser(description="Change Files name")
parser.add_argument("-d", "--directory", default="./", help="Directory File")
parser.add_argument("-s", "--start_prefix", default="01", help="Start Prefix File")
parser.add_argument("-p", "--end_prefix", default="", help="End Prefix File")
parser.add_argument("-e", "--extension", default=".png", help="Extension File")
parser.add_argument("-i", "--include", default="", help="Word in File name")
parser.add_argument(
"--is_test", default=False, type=lambda x: (str(x).lower() == "true"), help="Is test mode"
)
return parser.parse_args()
# --------------------------------------------------
def change_name(
directory: str,
start_prefix: str,
end_prefix: str,
extension: str,
include: str,
is_test: bool,
) -> None:
""""""
if not extension.startswith('.'):
raise Exception("Extensions must start with dot")
end_prefix = '_' + end_prefix if len(end_prefix)>0 else end_prefix
start_prefix = start_prefix + '_' if len(start_prefix)>0 else start_prefix
idx: int = 1
for filename in os.listdir(directory):
if filename.endswith(extension) and (include.lower() in filename.lower()):
filerename = f"{start_prefix}{idx:02}{end_prefix}{extension}"
if is_test:
print(filename, '>>', filerename)
else:
os.rename(f"{directory}/{filename}", f"{directory}/{filerename}")
# Count only files filtered
idx+=1
# --------------------------------------------------
def main() -> None:
""""""
args: argparse.Namespace = get_args()
change_name(
args.directory,
args.start_prefix,
args.end_prefix,
args.extension,
args.include,
args.is_test,
)
# --------------------------------------------------
if __name__ == "__main__":
main()