-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclean_tD.py
210 lines (153 loc) · 4.27 KB
/
clean_tD.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
import os
import shutil
err_list = []
"""
高效率下载目录整理脚本
使用前自行测试,请勿用于非下载文件夹。
曾误操作3秒删除5T内容。。。增加部分防呆措施,效果自行测试
del_name_set
文件名含有任意项目 ->删除文件
项目 in 文件名
del_dir_set
文件夹名完全匹配 ->删除文件夹及全部内容
项目 == 文件夹名
rename_file_set
文件名含有的项目, 删除文件名的指定部分
项目 in 文件名
rename_dir_set
文件夹名有的项目, 删除文件夹名的指定部分
项目 in 文件名
fun:
re_search_1()
正则匹配删除文件
"""
del_name_set = {
"x u u 6",
".htm",
".url",
".txt",
"二维码",
"最新地址",
"扫码获取",
"美女荷官",
"kcf9.com",
".chm",
"扫码下载",
"社区t66y.com.jpg",
"最新网址",
".apk",
".mht",
"手机网址",
"强力推荐",
"广告位招商",
"扫码安装",
"禁手游",
"社 區 最 新 情 報.mp4",
"新 片 首 發 ",
"臺 灣 妹 妹 直 播"
}
del_dir_set = {
"宣傳文件",
"論壇文宣",
"2048",
"文宣",
"成人免费吃瓜"
}
import re
"""
\s 匹配空白字符
[]内匹配 单个或成组字符
"""
def re_search_1(in_name):
aa = re.search("[a-z]uu[0-9][0-9].com", in_name ) #Xuu00.com
if aa ==None:
aa = re.search("uu[a-z][0-9][0-9].com", in_name ) #uuX00.com
if aa ==None:
aa = re.search("[uU][uU][a-zA-Z][0-9][0-9].mp4", in_name ) #uuX00.com
if aa ==None:
aa = re.search("[a-zA-Z]\s[uU]\s[uU]\s[0-9]\s[0-9]\s", in_name ) #X u u 0 0
# n X re.express
if aa != None:
print(in_name)
#print(aa)
return 1
return 0
def del_names(in_name):
#delete file
for i in del_name_set:
if i !="":
if i in in_name:
return 1
#not del file
return 0
def remove_dir(dir):
if os.path.isdir(dir):
shutil.rmtree(dir)
def del_dir_name(in_name):
for i in del_dir_set:
if i != "":
if i == in_name:
#del dir
return 1
#not del dir
return 0
rename_file_set = {
"[fbzip.com]",
"[BT-btt.com]",
"hhd800.com@",
"[44x.me]",
"[Thz.la]"
}
rename_dir_set ={
"[BT-btt.com]",
"[7sht.me]",
"[44x.me]",
"[Thz.la]"
}
def rename_files(in_name,_root):
for i in rename_file_set:
if i !="":
if i in in_name:
#rename
os.rename(_root +r'\\' + in_name, _root +r'\\' + in_name.replace(i,""))
def rename_dirs(in_name, _root):
for i in rename_dir_set:
if i !="":
if i in in_name:
#rename dir
#print("here")
#print(in_name)
#print(_root)
try:
os.rename(_root +r'\\' + in_name, _root +r'\\' + in_name.replace(i,""))
except FileExistsError:
#print(f"DIR Existed : {_root +'//' + in_name}")
err_list.append(f"target DIR Existed : {_root +'//' + in_name}")
def walk_del(dir_path):
for root,dirs, files in os.walk(dir_path):
#print("m",root)
#print("dir",dirs)
#print('f',files)
for i_d in dirs:
if del_dir_name(i_d):
print(f"remove dir: {root+i_d}")
remove_dir(root +r'\\' + i_d)
#rename 父目录重命名后当次无法walk,需重命名的目录层次多,则需多运行几次。
rename_dirs(i_d,root)
for i_f in files:
if re_search_1(i_f):
print(f"remove file: {root+ '//' + i_f}")
os.remove(root +r'\\' + i_f)
if del_names(i_f):
print(f"remove file: {root+ '//' + i_f}")
os.remove(root +r'\\' + i_f)
rename_files(i_f,root)
if __name__ == '__main__':
print("BIGIN::")
path_d= r"E:\\tD"
walk_del(path_d)
#path2= r"F:\\tD"
#walk_del(path2)
print("===============Err list ===========")
for i in err_list:
print(i)