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编码时应该注意的几个情况
Mar 04 Python
插入排序_Python与PHP的实现版(推荐)
May 11 Python
Python绘制的二项分布概率图示例
Aug 22 Python
Python global全局变量函数详解
Sep 18 Python
使用Python实现跳帧截取视频帧
May 31 Python
TensorFlow:将ckpt文件固化成pb文件教程
Feb 11 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
python实现简单坦克大战
Mar 27 Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
python 常用的异步框架汇总整理
Jun 18 Python
python数字图像处理之图像的批量处理
Jun 28 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 Socket 编程
2010/04/09 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
python异步任务队列示例
2014/04/01 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
个人素质的自我评价分享
2013/12/16 职场文书
销售提升方案
2014/06/07 职场文书
师德先进个人材料
2014/12/20 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
新闻通讯稿范文
2015/07/22 职场文书
护士心得体会范文
2016/01/25 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
Python中rapidjson参数校验实现
2021/07/25 Python
使用python创建股票的时间序列可视化分析
2022/03/03 Python
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers