python[glob+rmtree来删除目录和子目录及其下所有文件]
来源:互联网 发布:和文化精髓知乎 编辑:程序博客网 时间:2024/05/22 06:15
一 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 shutildef 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,该方法返回所有匹配的文件路径列表,该方法需要一个参数用来指定匹配的路径字符串(本字符串可以为绝对路径也可以为相对路径),其返回的文件名只包括当前目录里的文件名,不包括子文件夹里的文件。
参考:http://xiagu1.iteye.com/blog/619526
0 0
- python实例32[glob+rmtree来删除目录和子目录及其下所有文件]
- python[glob+rmtree来删除目录和子目录及其下所有文件]
- python 删除某个目录及子目录下所有过期文件
- 查找并删除当前目录及其子目录下的所有重复文件
- 删除目录及目录下所有文件与子目录
- linux下删除目录及其子目录下某种类型文件
- linux下删除目录及其子目录下某种类型文件
- 删除目录下所有文件和子目录(不包括当前目录)
- 获取指定目录及其子目录下所有文件的绝对路径
- java删除目录下所有子目录及文件
- 删除目录及子目录下所有文件【mac】
- 删除所有svn文件(一个目录和其各级子目录下的) 两种方法
- 如何删除当前目录和子目录下的所有.log文件
- 删除目录及目录下的所有文件 用glob方法
- python列举目录(包括子目录)下的所有文件
- 使用批处理命令移动子目录下的所有文件到当前目录下,并删除子目录
- Python 遍历目录和子目录下所有文件,并替换其中的字符串
- 删除目录下所有子目录和文件
- gulp教程之gulp-imagemin压缩图片
- 解决Tomcat 不定时报OutOfMemoryError: PermGen space
- oracle 递归查询学习
- WriteConsoleOutput(二)
- Java中的多态调用问题,下面代码输出是什么?
- python[glob+rmtree来删除目录和子目录及其下所有文件]
- 求帮忙 写一个计算公式
- 日常汇总
- CentOS下添加用户并且让用户获得root权限
- Tomcat的生命周期管理简要分析
- windows service 安装
- 电影介绍
- Spring 向页面传值的方式以及返回类型
- UIView的Text属性调用不出来