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 相关文章推荐
Python使用Socket(Https)Post登录百度的实现代码
May 18 Python
python client使用http post 到server端的代码
Feb 10 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
python机器学习之决策树分类详解
Dec 20 Python
python3.6连接MySQL和表的创建与删除实例代码
Dec 28 Python
python 集合 并集、交集 Series list set 转换的实例
May 29 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
Dec 05 Python
django基于restframework的CBV封装详解
Aug 08 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
python 装饰器的使用示例
Oct 10 Python
如何使用Pytorch搭建模型
Oct 26 Python
Python如何用re模块实现简易tokenizer
May 02 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
PHP下判断网址是否有效的代码
2011/10/08 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
Python函数式编程指南(四):生成器详解
2015/06/24 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
Python内置函数locals和globals对比
2020/04/28 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
如何理解委托
2012/01/06 面试题
应届生体育教师自荐信
2013/10/03 职场文书
六月份红领巾广播稿
2014/02/03 职场文书
《故乡》教学反思
2014/04/10 职场文书
婚礼秀策划方案
2014/05/19 职场文书
金融保险专业求职信
2014/09/03 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
高一语文教学反思
2016/02/16 职场文书