-
Notifications
You must be signed in to change notification settings - Fork 1
/
chext
executable file
·88 lines (62 loc) · 2.87 KB
/
chext
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/env python3
#################### ALESSANDRO RIDOLFI ########################
# Version 1.1 #
# Cagliari, August 2023 #
################################################################
import sys, os, os.path, glob
#ARGOMENTI DA SHELL
string_version = "1.1 (28Aug2023)"
flag_force = 0
if "-f" in sys.argv:
sys.argv.remove("-f")
flag_force = 1
if (len(sys.argv) == 1 or ("-h" in sys.argv) or ("-help" in sys.argv) or ("--help" in sys.argv)):
print("USAGE1: %s oldext newext" % (os.path.basename(sys.argv[0])))
print("USAGE2: %s -old \"oldext\" -new \"newext\" -files \"<files*.ar>\" [-f]" % (os.path.basename(sys.argv[0])))
print()
print(" -f: force the changes without asking for confirmation")
exit()
elif (("-version" in sys.argv) or ("--version" in sys.argv)):
print("Version: %s" % (string_version))
exit()
elif len(sys.argv) == 3:
oldext = sys.argv[1]
newext = sys.argv[2]
list_old_filenames = glob.glob("*%s*" % (oldext) )
elif len(sys.argv) > 3:
for j in range( 1, len(sys.argv)):
if (sys.argv[j] == "-old"):
oldext = sys.argv[j+1]
elif (sys.argv[j] == "-new"):
newext = sys.argv[j+1]
elif (sys.argv[j] == "-files"):
string_files = sys.argv[j+1]
if ("*" in string_files) or ("?" in string_files):
print(string_files.strip("\""))
list_old_filenames = list(filter(lambda x: x.endswith(oldext), sorted(glob.glob(string_files.strip("\""))) ))
else:
list_old_filenames = list(filter(lambda x: x.endswith(oldext), string_files.replace(" ","").split(",")))
if not oldext.startswith("."): oldext = "." + oldext
if not newext.startswith("."): newext = "." + newext
list_new_filenames = [os.path.basename(f).split(oldext)[0] + newext for f in list_old_filenames]
if len(list_new_filenames) == 0:
print("ERROR: No selected file has '%s' as its extension! Exiting..." % (oldext))
exit()
lenght_max_old_filenames = int(max([len(x) for x in list_old_filenames] ))
print()
print("#"*62)
print("#" + " "*18 + "PSRALEX - %-20s" % (os.path.basename(sys.argv[0])) + " "*12 + "#")
print("#"*62)
print()
print("These files will be renamed as follows:")
print()
for i in range(len(list_old_filenames)):
print("%-*s ---> %-s " % (lenght_max_old_filenames, list_old_filenames[i], list_new_filenames[i]))
print()
if flag_force == 0:
a = input("Proceed? (y/n): ")
elif flag_force == 1:
a = "y"
if a == "y":
for i in range(len(list_old_filenames)):
os.rename( list_old_filenames[i], list_new_filenames[i])