Python中使用glob和rmtree删除目录子目录及所有文件的例子


Posted in Python onNovember 21, 2014

一、batch与shell中

目录及文件:

C:\TESTFOLDER\TEST

├─Test2

└─Test3

        test.txt

删除目录及其下的所有文件:

rmdir /S /Q c:\TestFolder\test

删除所有目录下的文件,但是目录结构不能被删除:

del /F /S /Q c:\TestFolder\test\*

Linux类似的命令为:

rm /rf /home/aaa/test

二、python中

:注意如果有错误会有异常抛出,需要处理异常。

1)删除文件且不支持通配符: os.remove()
2) 删除空的目录: os.rmdir()
3) 删除空的目录及子目录: os.removedirs()
3) 删除目录及其子目录中的文件:shutil.rmtree()

rmtree+异常处理:

#code:

import shutil

def retreeExceptionHandler(fun,path,excinfo):

  print("Error:" + path)

  print(excinfo[1])

  

shutil.rmtree('c:\\testfolder\\test',ignore_errors=False,onerror=retreeExceptionHandler)

 

#result:

Error:c:\testfolder\test\Test3

[Error 32] The process cannot access the file because it is being used by another process: 'c:\\testfolder\\test\\Test3'

Error:c:\testfolder\test

[Error 145] The directory is not empty: 'c:\\testfolder\\test'

使用rmdir和remove等价于rmtree:

#! /usr/bin/env python  

#coding=utf-8  

## {{{ Recipe 193736 (r1): Clean up a directory tree   

""" removeall.py: 

 

   Clean up a directory tree from root. 

   The directory need not be empty. 

   The starting directory is not deleted. 

   Written by: Anand B Pillai <abpillai@lycos.com> """  

  

import sys, os  

  

ERROR_STR= """Error removing %(path)s, %(error)s """  

  

def rmgeneric(path, __func__):  

  

    try:  

        __func__(path)  

        print 'Removed ', path  

    except OSError, (errno, strerror):  

        print ERROR_STR % {'path' : path, 'error': strerror }  

              

def removeall(path):  

  

    if not os.path.isdir(path):  

        return  

      

    files=os.listdir(path)  

  

    for x in files:  

        fullpath=os.path.join(path, x)  

        if os.path.isfile(fullpath):  

            f=os.remove  

            rmgeneric(fullpath, f)  

        elif os.path.isdir(fullpath):  

            removeall(fullpath)  

            f=os.rmdir  

            rmgeneric(fullpath, f) 

## End of recipe 193736 }}}

三、通配符

glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作,*,?,[]这三个通配符,*代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。

它的主要方法就是glob,该方法返回所有匹配的文件路径列表,该方法需要一个参数用来指定匹配的路径字符串(本字符串可以为绝对路径也可以为相对路径),其返回的文件名只包括当前目录里的文件名,不包括子文件夹里的文件。

Python 相关文章推荐
Django与遗留的数据库整合的方法指南
Jul 24 Python
Python读取图片属性信息的实现方法
Sep 11 Python
Python实现判断一个字符串是否包含子串的方法总结
Nov 21 Python
Django中使用Celery的方法示例
Nov 29 Python
Django的models模型的具体使用
Jul 15 Python
在Python中使用MongoEngine操作数据库教程实例
Dec 03 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
Python爬虫进阶之爬取某视频并下载的实现
Dec 08 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 Python
python识别围棋定位棋盘位置
Jul 26 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 Python
Python中使用SAX解析xml实例
Nov 21 #Python
python sort、sorted高级排序技巧
Nov 21 #Python
python中global与nonlocal比较
Nov 21 #Python
python装饰器decorator介绍
Nov 21 #Python
python多线程操作实例
Nov 21 #Python
Python中的闭包详细介绍和实例
Nov 21 #Python
Python多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 #Python
You might like
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
深入理解JS正则表达式---分组
2016/07/18 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
Python中http请求方法库汇总
2016/01/06 Python
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
linux面试题参考答案(9)
2015/01/07 面试题
中学教师师德承诺书
2014/05/23 职场文书
新闻编辑求职信
2014/07/13 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
庆元旦主持词
2015/07/06 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL