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获取糗百图片代码实例
Dec 18 Python
python生成随机mac地址的方法
Mar 16 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
Python打印“菱形”星号代码方法
Feb 05 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
OpenCV 模板匹配
Jul 10 Python
利用Python校准本地时间的方法教程
Oct 31 Python
python 安装impala包步骤
Mar 28 Python
Python数据可视化实现漏斗图过程图解
Jul 20 Python
python 绘制正态曲线的示例
Sep 24 Python
学会Python数据可视化必须尝试这7个库
Jun 16 Python
python playwrigh框架入门安装使用
Jul 23 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中文件上传的安全问题
2006/10/09 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
js 编写规范
2010/03/03 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
Python里disconnect UDP套接字的方法
2015/04/23 Python
python删除列表中重复记录的方法
2015/04/28 Python
python使用wxpython开发简单记事本的方法
2015/05/20 Python
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
Python Grid使用和布局详解
2018/06/30 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
九年级科学教学反思
2014/01/29 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
中学生运动会口号
2014/06/07 职场文书
贫困证明怎么写
2015/06/16 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android