python2.7删除文件夹和删除文件代码实例


Posted in Python onDecember 18, 2013
#!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 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 = None if del_dirs == None else re.compile(del_dirs)
    patt_files = None 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 you 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)
Python 相关文章推荐
Python基于smtplib实现异步发送邮件服务
May 28 Python
深入浅析Python字符编码
Nov 12 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
Python中input与raw_input 之间的比较
Aug 20 Python
Python使用django框架实现多人在线匿名聊天的小程序
Nov 29 Python
浅谈python中真正关闭socket的方法
Dec 18 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
Jun 18 Python
python单例模式的多种实现方法
Jul 26 Python
Python 静态方法和类方法实例分析
Nov 21 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
python实现发送带附件的邮件代码分享
Sep 22 Python
python使用xmlrpc实例讲解
Dec 17 #Python
python三元运算符实现方法
Dec 17 #Python
用python写asp详细讲解
Dec 16 #Python
python模块restful使用方法实例
Dec 10 #Python
python解析模块(ConfigParser)使用方法
Dec 10 #Python
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 #Python
python socket网络编程步骤详解(socket套接字使用)
Dec 06 #Python
You might like
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
浅谈javascript错误处理
2019/08/11 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
Python中内置的日志模块logging用法详解
2016/07/12 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
python贪吃蛇游戏代码
2020/04/18 Python
python中eval与int的区别浅析
2019/08/11 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
几款好用的python工具库(小结)
2020/10/20 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
北美最大的手工艺品零售商之一:Michaels Stores
2019/02/27 全球购物
营业员实习自我鉴定
2013/12/07 职场文书
中职生求职信
2014/07/01 职场文书
汽修专业自荐信
2014/07/07 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js