-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathremove_date_prefix.py
More file actions
executable file
·43 lines (33 loc) · 1.02 KB
/
Copy pathremove_date_prefix.py
File metadata and controls
executable file
·43 lines (33 loc) · 1.02 KB
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
#!/usr/bin/env python3
from argparse import ArgumentParser, BooleanOptionalAction
import os
import re
def main(files, force):
if not force:
print("DRY RUN - no files will be renamed. " +
"Call script with argument --force to rename files")
newfiles = set()
for file in files:
if os.path.isfile(file):
newfile = re.sub(r'^[0-9_-]*', '', file)
while newfile in newfiles:
newfile += " (1)"
newfiles.add(newfile)
if force:
os.rename(file, newfile)
else:
print(f'mv "{file}" "{newfile}"')
if __name__ == "__main__":
arg_parser = ArgumentParser()
arg_parser.add_argument(
"-f", "--force",
action=BooleanOptionalAction,
help="Actually rename files")
arg_parser.add_argument(
"files",
nargs="*",
default=os.listdir('.'),
help="List of files to prefix"
)
args = arg_parser.parse_args()
main(args.files, args.force)