Python清理文件及文件夹,python清理文件夹,#!c:\\python


#!c:\\python27\\python.exe# -*- coding: utf-8 -*-import osimport refrom os import pathfrom shutil import rmtreedel_dirs = r'(debug|release|ui)'del_files = r'(Makefile*|object_script\\..+?\\.(Debug|Release)|ui_.+?\\.h)'def del_dir(p):    """Delete a directory."""    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 = del_dirs == None if None else re.compile(del_dirs)    patt_files = del_files == None if None else re.compile(del_files)    for root, dirs, files in os.walk(directory):        for dir in dirs:            if patt_dirs and patt_dirs.match(dir):                yield path.join(root, dir)        for file in files:            if patt_files and patt_files.match(file):                yield path.join(root, file)def confirm_deletions(directory):     import Tkinter    import tkMessageBox    root = Tkinter.Tk()    root.withdraw()    res = tkMessageBox.askokcancel("Confirm deletions?", "Do you really wish to delete?")    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__':    confirm_deletions(os.getcwd())#该片段来自于http://byrx.net

评论关闭