python目录遍历_Python 对目录做遍历

os.walk() 用于遍历目录里的文件,或者说迭代目录里的文件 ??? 什么意思?比如 Linux 中 find /data -type f 表示找出 /data 目录下的所有文件,它会先找出 /data 目录下的文件,如果 /data 目录下还有子目录,再继续往下从子目录中找出文件,如果子目录下还有子目录,再继续往下找,...... ,最终找出所有的文件,这就叫做遍历/迭代目录里的文件

os.walk() 语法:

walk(top, topdown=True, οnerrοr=None, followlinks=False)

top :指定我们要遍历哪个目录,这个目录称为 top ( 顶级 ) 目录

topdown :可选参数,如果为True,则优先遍历 top 目录,如果为False,则优先遍历 top 目录下的子目录,默认是True

onerror :可选参数,默认为None,表示当我们遍历目录里的文件时,如果遍历出错,忽略并继续遍历;如果不为空,则需要提供一个自定义函数来提示出现错误后,要继续遍历,还是抛出异常中止遍历

followlinks :可选参数,如果为True,则会遍历目录的软链接指向的实际目录,如果为 False 则不会

os.walk() 用法如下:

[root@localhost ~]$ tree /data/data|-- 1.txt|-- 2.txt|--tmp1| |-- 1.txt| `-- 2.txt

`--tmp2|-- 1.txt

`-- 2.txt

In [1]: importos

In [2]: for p, d, f in os.walk('/data'): #os.walk()会返回一个三元组,分别是 dirpath, dirnames, filenames,这里我们用 p, d, f 来接收

...: print p, d, f #dirpath 表示 top 目录,dirnames 表示 top 目录下的子目录(不包括该子目录下的子目录),filenames 表示该子目录下的所有文件(不包括改子目录下的子目录的文件)

...:/data ['tmp1', 'tmp2'] ['2.txt', '1.txt'] #/data 表示 top 目录,['tmp1', 'tmp2'] 表示 /data 下的子目录,['2.txt', '1.txt'] 表示子目录下的文件。然后继续遍历 - - - ╮

/data/tmp1 [] ['2.txt', '1.txt'] < - - - ╯

/data/tmp2 [] ['2.txt', '1.txt']

通常,我们会用 os.walk() 找出指定目录下的所有文件:

In [1]: importos

In [2]: for p, d, f in os.walk('/data'):

...:for i inf:

...:printos.path.join(p, i)

...:/data/2.txt/data/1.txt/data/tmp1/2.txt/data/tmp1/1.txt/data/tmp2/2.txt/data/tmp2/1.txt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值