Python清理文件及文件夹,python清理文件夹,#!c:\\python
文章由Byrx.net分享于2019-03-23 08:03:39
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
评论关闭