python清理文件_Python清理文件及文件夹

这段Python代码用于批量删除指定目录下的特定文件和子目录。通过正则表达式匹配要删除的目录名和文件名,使用os和shutil库进行操作。在删除前,程序会弹窗确认是否执行删除操作。
摘要由CSDN通过智能技术生成

#!c:\\python27\\python.exe

# -*- coding: utf-8 -*-

import os

import re

from os import path

from shutil import rmtree

del_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())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值