对于os.walk()的认识--python遍历文件执行相应操作

os.walk()的详细理解(秒懂)
这是个遍历文件夹的操作指令,有三个返回参数root, dirs, files。
root:就是你写的当前文件夹的绝对路径
dirs:当前文件夹下的子文件夹名组成的list
files:返回当前文件夹所含的非文件夹文件,比如jpg或者png或者mp4文件


以族谱为例,遍历顺序是这样的:
第一次遍历:
root:你爷爷的名字
dirs:你大伯,二大伯,你爸爸(老三)的名字(均育有儿女)
files:你爷爷的那个不成器的没结婚的小儿子的名字(老四,你四叔)

第二次遍历:
root:你大伯的名字
dirs:你大伯的大儿子的名字(你大堂哥,育有儿女)(没错你家全是男娃)
files:你大伯的那个不成器的没结婚的小儿子的名字(老二,你二堂哥)

第三次遍历:
root:你大堂哥的名字
dirs:空,你大堂哥的孩子还没有生娃(毕竟连你都还没有对象)
files:你大堂哥的那个不成器的没生娃的大儿子,你大堂哥的那个不成器的没生娃的小儿子

终于你大伯这一支再也找不出有娃的了(同时这一支的所有人也都遍历完了)

第四次遍历:
root:你二大伯的名字
dirs:你二大伯的大儿子的名字(育有儿女)
files:你二伯的那个不成器的没结婚的小儿子的名字
如此下去------------------------------------------------------------


参考文章的作者提到了深度遍历这个概念:

深度优先遍历特点是,选定一个出发点后进行遍历,能前进则前进,若不能前进,回退一步再前进,或再回退一步后继续前进。依此重复,直到所有与选定点相通的所有顶点都被遍历。

参考文章给出了三级目录:
在这里插入图片描述
mm文件夹包含sss文件夹和hhh文件夹,sss文件夹又包含hewenyong文件夹,每个文件夹都含有图片若干。作者写了一个for循环:

import os

# 操作的文件夹路径
operate_path = r"/media/hewenyong/my_file/soft/jupyter_workspace/mm"

for root, dirs, files in os.walk(operate_path):
    print('root:',root)
    print('dirs:',dirs)
    print('files:',files)
    print('\n')
"""
*********************** 实验结果: *******************************
root: /media/hewenyong/my_file/soft/jupyter_workspace/mm
dirs: ['sss', 'hhh']
files: ['plaid_img_00006051.jpg', 'plaid_img_00006053.jpg', 'plaid_img_00006052.jpg']

root: /media/hewenyong/my_file/soft/jupyter_workspace/mm/sss
dirs: ['hewenyong']
files: ['cat.1.jpg', 'cat.0.jpg', 'cat.2.jpg']

root: /media/hewenyong/my_file/soft/jupyter_workspace/mm/sss/hewenyong
dirs: []
files: ['cat.93.jpg', 'cat.94.jpg', 'cat.92.jpg']

root: /media/hewenyong/my_file/soft/jupyter_workspace/mm/hhh
dirs: []
files: ['abstract_img_00028077.jpg', 'abstract_img_00028073.jpg', 'abstract_img_00028076.jpg', 'abstract_img_00028075.jpg', 'abstract_img_00028074.jpg']
"""

看一下这个输出结果想必容易理解的多

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值