Copy Code code as follows:
#!c:\python27\python.exe
#-*-Coding:utf-8-*-
Import OS
Import re
From OS import path
From Shutil import Rmtree
Del_dirs = None
Del_files = R ' (. +?\.pyc$|. +?\.pyo$|. +?\.log$) '
def del_dir (P):
"" "Delete Directory A." ""
If Path.isdir (p):
Rmtree (P)
Print (' D:%s '% p)
def del_file (P):
"" "Delete a file." ""
If Path.isfile (p):
Os.remove (P)
Print (' F:%s '% p)
Def gen_deletions (directory, Del_dirs=del_dirs, del_files=del_files):
"" Generate Deletions. "" "
patt_dirs = None if Del_dirs = = None Else Re.compile (del_dirs)
patt_files = N one if Del_files = = None Else Re.compile (del_files)
for Root, dirs, files in Os.walk (directory):
if Patt_dirs:
for D in dirs:
if Patt_dirs.match (d):
Yield Path.join (root, D)
if patt_files:
for F in Files:
if Patt_files.match (f):
yield Path.join (root, f)
def confirm_deletions (directory):
Import Tkinter
Import Tkmessagebox
root = tkinter.tk ()
Root.withdraw ()
res = Tkmessagebox.askokcancel ("Confirm deletions?"),
"Do your really wish to delete?\n\n"
"Working directory:\n%s\n\n"
"Delete conditions:\n (D)%s\n (F)%s"
% (directory, del_dirs, del_files))
If Res:
Print (' processing ... ')
M, n = 0, 0
For p in gen_deletions (directory):
If Path.isdir (p):
Del_dir (P)
M + 1
Elif Path.isfile (P):
Del_file (P)
n + 1
Print (' Clean%d dirs and%d files. '% (M, n))
Root.destroy ()
Else
Print (' Canceled. ')
Root.destroy ()
Root.mainloop ()
if __name__ = = ' __main__ ':
Import Sys
argv = sys.argv
directory = argv[1] If Len (argv) >= 2 Else OS.GETCWD ()
Confirm_deletions (directory)
# import Subprocess
# Subprocess.call ("pause", shell=true)