思路:

遍历文件夹下面的文件夹

如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除)

删除此文件夹

如果文件夹名称不等于".svn",则递归上面的方法

代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

import os

import shutil

import os.path

import stat

rootdir="F:\\work\\Test"

for parent,dirnames,filenamesin os.walk(rootdir):#遍历文件夹下面的所有文件夹

for dirnamein dirnames:

if dirname=='.svn':

strfilepath=parent+os.sep+dirname

if os.path.isdir(strfilepath):

os.system('attrib -r ' + parent+ '\\*.* /s')#设置本文件夹可写

os.system('attrib -r ' + strfilepath+ '\\*.* /s')#设置父文件夹可写

shutil.rmtree(parent+os.sep+dirname)#删除此文件夹

要点:

Walk在os模块下面,用来根据提供的文件夹生成一个generator。每次可以得到一个三元tupple,其中第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。

os.system('attrib -r ' + parent + '\\*.* /s') 设置文件夹可写

shutil.rmtree(parent+os.sep+dirname) 删除文件夹(即使文件夹里面有文件)

例二:

Python实现递归遍历指定文件目录(startdir),从而找到所有与指定的文件或目录(target)名相同的文件或目录的绝对路径。

scandir.py :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#! /usr/bin/python

# filename : scandir.py

# author : Jesse

# update : 2011/08/15 10:16

import os

def scandir(startdir, target) :

os.chdir(startdir)

for objin os.listdir(os.curdir) :

if obj== target :

print os.getcwd()+ os.sep+ obj

if os.path.isdir(obj) :

scandir(obj, target)

os.chdir(os.pardir)#!!!

startdir= raw_input('Please input startdir: ')

target= raw_input('Please input target: ')

scandir(startdir, target)

关于该程序的一点说明:

1. 函数scandir的形参target可以是目录名也可以是文件名。

2. 函数chdir的作用是切换到指定目录,该参数必须是有效的且有访问权限的相对路径或绝对路径。

3. 函数的第五行,使用getcwd函数也是为了取得当前绝对路径。

4. 加号作为字符串的连接符。os.sep根据你的操作系统给出目录分隔符,在GNU/Linux和UNIX上它的返回值是'/',在windows上它的返回值是'\\',在Mac OS上是‘:',使用os.sep而不直接使用字符,会提高程序的可移植性。

5. 递归调用后,一定不能忘了os.chdir(os.pardir),返回上层目录(即父目录)。

重要:

1. 理解for中的两个并列的if语句,并列是为了解决目标是文件夹时,该目标文件夹中包含符合要求的文件夹。

2. 如果指定目录中存在访问受限的文件或文件夹,该程序会失败,返回无权访问信息。

例三:

Python递归遍历文件夹,寻找包含某个字符串的文本文件

linux下,如果不使用eclipse的话,想查找某个字符串在哪些文件中出现过就很麻烦,自己写了这个脚本在编码时使用,挺方便的。如果某个文本文件中包含的话,则只记录出现第一次的行数输出

使用方法:

python xxx.py 路径 字符串

python search_content.py /home/www/ abcdefg

search_content.py

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

#!/use/bin/env python

#-*- coding:utf-8 -*-

import sys,os

filterType= ['gif','png','bmp','jpg','jpeg','rar','zip',

'ico','apk','ipa','doc','docx','xls','jar',

'xlsx','ppt','pptx','pdf','gz','pyc','class']

num= 0

def search(path=None,cont=None):

if not pathor not cont:

print('path or searchString is empty')

return

global num

_loopFolder(path,cont)

print("%s file find" % num)

def _loopFolder(path,cont):

arr= path.split('/')

if not arr[-1].startswith('.'):#不检查隐藏文件夹

if os.path.isdir(path):

folderList= os.listdir(path)

for xin folderList:

_loopFolder(path+"/"+x,cont)

elif os.path.isfile(path):

_verifyContent(path,cont)

def _verifyContent(path,cont):

if path.split('.')[-1].lower()in filterType:

return

global num

fh= open(path,'r')

fhContent= fh.readlines()

fh.close()

for index,xin enumerate(fhContent):

if contin x:

num+= 1

print("%s %s" % (path,index+1))

break

return

if __name__== "__main__":

if len(sys.argv) <3:

print("invalid parameters")

else:

search(sys.argv[1],sys.argv[2])

python递归遍历目录_Python实现递归遍历文件夹并删除文件相关推荐

  1. android 文件 删除文件夹,android 删除文件以及递归删除文件夹

    Python之文件处理-递归删除特定文件 #!/usr/bin/env python # -*- coding:utf-8 -*- import os def delete_particular_fi ...

  2. linux里创建文件夹、创建文件夹子文件夹、删除文件夹和文件、访问指定目录级返回上一级目录

    1.新建文件夹 2.删除文件 3.访问目录 一.新建文件夹 mkdir 命令是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用. 1.mkdir xxx:创建文件夹 ...

  3. python批量删除文件1001python批量删除文件_Python实现递归遍历文件夹并删除文件...

    思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹 ...

  4. java目录实用工具_JAVA 创建文件和文件夹,删除文件和文件夹的实用工具

    package com.file; import java.io.File; import java.io.IOException; //创建新文件和目录 public class CCRDFile ...

  5. linux拷贝目录并修改名字,linux复制文件夹、重命名文件夹、删除文件夹

    linux中复制命令为cp(即copy缩写),重命名使用mv命令(即move缩写)来实现,删除命令为rm(即remove缩写). 如果操作对象是单个文件,复制和删除以及重命名很简单,如下: cp a. ...

  6. C、 C++遍历文件夹,删除文件夹

    1,使用SHFileOperation删除文件夹, bool CTools:: DelFilesOfDir(string strDir) {int iRet = ACCESS(strDir.c_str ...

  7. python删除文件代码_python2.7删除文件夹和删除文件代码实例

    #!c:\python27\python.exe # -*- coding: utf-8 -*- import os import re from os import path from shutil ...

  8. python生成文件夹和删除文件夹

    import os import shutil 生成文件夹 def tp(tp=None): os.makedirs(""+tp) # 生成文件夹位置的路径 删除文件夹 os.re ...

  9. python查找文件夹下的文件,python 查找文件夹下所有文件 实现代码 -电脑资料

    复制代码代码如下: def find_file_by_pattern(pattern='.*', base=".", circle=True): '''''查找给定文件夹下面所有 ...

最新文章

  1. Django模板之django自带模板
  2. Server Tomcat v7.0 Server at localhost failed to start.解决办法(图文详解)
  3. BZOJ 4300: 绝世好题( dp )
  4. FTP 两种传输模式 Binary 和 ASCII 的区别
  5. php var_export与var_dump 输出的不同
  6. 智能优化算法之海豚回声定位(Dolphin echolocation,DE)
  7. 数据库课程设计:医院信息管理系统(pycharm+MySQL)
  8. 珠宝订货(订单)系统与ERP实现库存信息同步的实现方案分享
  9. 微信 打开html文件,微信文件在电脑上打开文件
  10. 深度研报:回顾「NFT」和「元宇宙」冰火两重天的11月
  11. [FAQ10019]HDMI/MHL如何修改手机默认横竖屏显示方式
  12. HTML5七夕情人节表白网页抖音超火的樱花雨3D相册 HTML+CSS+JavaScript
  13. android指南针Demo,谁有安卓简易指南针的DEmo
  14. Typora搭建图床解决上传md文档图片无法加载的问题
  15. java 实现 手机接收短信验证码功能
  16. Python实现图像直方图规定化(直方图匹配)-附完整代码
  17. acr38u PHP调用,ACS ACR38U-N1智能卡读卡器驱动
  18. 【python】python matplotlib绘制并保存多张图片+绘制多张子图
  19. 数字 IC 设计、FPGA 设计秋招笔试题目、答案、解析(1)2022 紫光展锐(上)
  20. 300行代码带你进入叙/丽/亚轰炸战场

热门文章

  1. PHP读取TXT中文乱码的解决方法
  2. std::lexicographical_compare
  3. android开发之播放音乐的方法
  4. html中输出 u263c,二级C语言笔试必过399题
  5. python列表删除算法_关于算法:如何从python中的列表中删除重复的条目
  6. 随想录(产品-工程开发-算法)
  7. ftk学习记(button篇)
  8. php 转义字符处理,PHP转义与反转义字符串函数详解
  9. 小米不加入鸿蒙,是华为不给小米用鸿蒙,还是小米拒绝使用鸿蒙?
  10. python语言的多行注释以什么开头和结尾_Python单行注释与多行注释