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 域名分析工具实现代码
Jul 15 Python
Django中模版的子目录与include标签的使用方法
Jul 16 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
Django框架models使用group by详解
Mar 11 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
Python进行统计建模
Aug 10 Python
python实现的web监控系统
Apr 27 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
Pandas-DataFrame知识点汇总
Mar 16 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
星际玩家的三大定律
2020/03/04 星际争霸
header()函数使用说明
2006/11/23 PHP
PHP Token(令牌)设计
2008/03/15 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
JavaScript对象模型-执行模型
2008/04/28 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
js转换对象为xml
2017/02/17 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
python中set()函数简介及实例解析
2018/01/09 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
智利最大的网上商店:Linio智利
2016/11/24 全球购物
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
情侣吵架检讨书
2014/02/05 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
员工给公司的建议书
2019/06/24 职场文书
python Polars库的使用简介
2021/04/21 Python
Go语言基础知识点介绍
2021/07/04 Golang