-
Notifications
You must be signed in to change notification settings - Fork 0
/
delete_empty_folders.py
93 lines (83 loc) · 2.67 KB
/
delete_empty_folders.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import os
from natsort import natsort_keygen
nkey = natsort_keygen()
again = "y"
path = input("\nEnter the path: ")
thumbs = input("Scan for and delete any 'Thumbs.db' files? y/n: ")
print("\n")
while again == "y":
delete = []
number = 0
# iterates through folders and adding to list empty once
# deleting thumbs beforehand if user want it
for subdir, dirs, _ in os.walk(path):
dirs.sort(key=nkey)
if thumbs.lower() == "y":
thumb = os.path.join(subdir, "Thumbs.db")
if os.path.exists(thumb):
try:
os.remove(thumb)
except PermissionError:
continue
if not os.listdir(subdir):
delete.append(subdir)
print(str(number) + "\t" + subdir)
number += 1
# if there is something in list, ask to delete them
if delete:
is_it = input(
"""
Delete the listed folders? - y
End the program without deleting? - n
Remove some directories from list? - r
y/n/r: """
)
# iterates through list to remove some entries
while is_it.lower() == "r":
which = input(
"""
Which line do you want to delete?
Press any key but number from list if you want to abort.
Go from the last to first number while deleting: """
)
try:
delete.pop(int(which))
except (ValueError, IndexError):
print(
("\nNone directory was deleted. Action aborted.").upper()
)
pass
is_it = input(
"""
Delete the remaining folders? - y
End the program without deleting? - n
Remove more directories from list? - r
y/n/r: """
)
# if user wants to remove more from list,
# its printing the list
if is_it.lower() == "r":
number = 0
for item in delete:
print(str(number) + "\t" + item)
number += 1
# removing directories if user said so
if is_it.lower() == "y":
how_many = 1
for item in delete:
try:
os.rmdir(item)
print(how_many)
except PermissionError:
print(str(how_many) + "\tIT'S BLOCKED\n" + item)
how_many += 1
print("~~~THE END.~~~\n")
# ends if user don't want to delete
else:
print("~~~THE END.~~~\n")
else:
print("~~~NO EMPTY FOLDERS.~~~\n")
break
# looping after deleting folders
again = input("Again? y/n: ")
print("~~~EXITED.~~~\n")