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 实现文件的递归拷贝实现代码
Aug 02 Python
pyqt4教程之messagebox使用示例分享
Mar 07 Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
Python3实现发送QQ邮件功能(文本)
Dec 15 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
浅析python中的迭代与迭代对象
Oct 08 Python
创建Django项目图文实例详解
Jun 06 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
Python基本语法之运算符功能与用法详解
Oct 22 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
Python常用断言函数实例汇总
Nov 30 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 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
微信小程序 支付后台java实现实例
2017/05/09 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
Java程序员常见面试题
2015/07/16 面试题
自我鉴定范文
2013/11/10 职场文书
优秀实习自我鉴定
2013/12/04 职场文书
乔迁之喜主持词
2014/03/27 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
银行催款通知书
2015/04/17 职场文书
2015年林业工作总结
2015/05/14 职场文书