python os.walk不递归_python-os.walk目录递归

递归删除文件或目录:

递归,os.walk

删除目录,shutil.rmtree

1 #-*- coding: UTF-8 -*-

2 importos.path,sys,shutil3

4 path = 'H:/test'

5

6

7 for root ,dirs ,files inos.walk(path):8 printroot,dirs,files9 for name indirs:10 if name == 'svn':11 printname12 shutil.rmtree(os.path.join(root,name))13 for name infiles:14 if name=='test.txt':15 os.remove(os.path.join(root,name))

python之os.walk()与os.path.walk()

os.walk()

函数声明:walk(top,topdown=True,οnerrοr=None)

1>参数top表示需要遍历的目录树的路径

2>参数topdown的默认值是"True",表示首先返回目录树下的文件,然后在遍历目录树的子目录.Topdown的值为"False"时,则表示先遍历目录树的子目录,

返回子目录下的文件,最后返回根目录下的文件

3>参数onerror的默认值是"None",表示忽略文件遍历时产生的错误.如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历

4>该函数返回一个元组,该元组有3个元素,这3个元素分别表示每次遍历的路径名,目录列表和文件列表

os,walk()实例:

1 importos2 defVisitDir(path):3 for root,dirs,files inos.walk(path):4 for filespath infiles:5 printos.path.join(root,filespath)6 if __name__=="__main__":7 path="/root"

8 VisitDir(path)

os.path.walk()

函数声明:walk(top,func,arg)

1>参数top表示需要遍历的目录树的路径

2>参数func表示回调函数,对遍历路径进行处理.所谓回调函数,是作为某个函数的参数使用,当某个时间触发时,程序将调用定义好的回调函数处理某个任务.

回调函数必须提供3个参数:第1个参数为walk()的参数tag,第2个参数表示目录列表,第3个参数表示文件列表

3>参数arg是传递给回调参数func的元组.回调函数的一个参数必须是arg,为回调函数提供处理参数.参数arg可以为空

os.path.walk()实例:

1 importos,os.path2 defVisitDir(arg,dirname,names):3 for filespath inname:4 printos.path.join(dirname,filespath)5 if __name__=="__main__":6 path="/root"

7 os.path.walk(path,VisitDir,())

os.path.walk()与os.walk()产生的文件名列表并不相同.os.path.walk()产生目录树下的目录路径和文件路径,而os.walk()只产生文件路径 如下面的例程:

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

2 importos3 for root, dirs, files in os.walk('/media/cdrom0'):4 open('mycd.cdc', 'a').write("%s %s %s" % (root,dirs,files))

完成的功能是/media/cdrom0下的目录文件写入到mycd.cdc中。

代码解释:

1. 声明是 utf-8 编码文本;

2. 引入了 os 模块;

3. 使用os.walk() 扫描光盘,并返回三个对象;

4. 使用open()打开mycd.cdc 文件对象,并声明成追加模式,逐行记录以上三个对象。

使用os.path.join

1 path='f:/testdata/01'

2

3 for root, dirs, files inos.walk(path):4 for name indirs:5 printos.path.join(root,name)6 for file infiles:7 print os.path.join(root,name,file)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值