os.walk()的详细理解(秒懂)

编程入门 行业动态 更新时间:2024-10-12 16:22:13

os.walk()的<a href=https://www.elefans.com/category/jswz/34/1770261.html style=详细理解(秒懂)"/>

os.walk()的详细理解(秒懂)

Python中os.walk()的详细理解

  • 1. os.walk()参数的含义
  • 2. 代码检验
    • 2.1 先看第一次遍历:
    • 2.2 再看第二次遍历:
    • 2.3 再看第三次遍历:
    • 2.4 最后看第四次遍历:
  • 3. 总结

反正最近文件夹名字操作要了我的老命,所以总结下这个方法的使用。

1. os.walk()参数的含义

  • root:Prints out directories only from what you specified.
  • dirs:Prints out sub-directories from root.
  • files:Prints out all files from root and directories.

只看英文理解的模模糊糊(文末有中文),用代码试试看咋回事咯!

2. 代码检验

先给出我的文件夹目录树形图 。

文件夹具体内容如下:


先上代码

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']
"""

可以看到输出了三次root、dirs、files

这是因为1个根目录(mm)、加上2个子目录(hhh,sss)、一个孙子目录(hewenyong)一共4个目录,所以会遍历4次。

2.1 先看第一次遍历:

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:输出了mm文件夹的的绝对路径;
  • dirs:保存了mm文件夹下的所有子文件夹的目录名(只有一层)
  • files:则是一个保存了mm文件夹下的所有文件的文件名,并保存到list中


没什么问题!


2.2 再看第二次遍历:

root: /media/hewenyong/my_file/soft/jupyter_workspace/mm/sss
dirs: ['hewenyong']
files: ['cat.1.jpg', 'cat.0.jpg', 'cat.2.jpg']
  • root:输出了sss文件夹的的绝对路径;(这是mm文件夹的第一个子文件夹
  • dirs:保存了sss文件夹下的所有子文件夹的目录名(只有一层)
  • files:则是一个保存了sss文件夹下的所有文件的文件名,并保存到list中


没有问题!


2.3 再看第三次遍历:

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

注意注意:他现在遍历的是sss的子文件夹hewneyong了,而并没有去遍历hhh!
注意注意:他现在遍历的是sss的子文件夹hewneyong了,而并没有去遍历hhh!
注意注意:他现在遍历的是sss的子文件夹hewneyong了,而并没有去遍历hhh!

  • root:输出了hewneyong文件夹的的绝对路径;(这是sss文件夹的第一个子文件夹
  • dirs:为空的list(因为hhh文件夹下没有子目录了)
  • files:则是一个保存了hewneyong文件夹下的所有文件的文件名,并保存到list中

2.4 最后看第四次遍历:

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']
  • root:输出了hhh文件夹的的绝对路径;(这是mm文件夹的另一个子文件夹
  • dirs:为空的list(因为hhh文件夹下没有子目录了)
  • files:则是一个保存了hhh文件夹下的所有文件的文件名,并保存到list中

3. 总结

首先,os.walk会遍历我们指定的文件夹,这没什么问题!
每一层遍历:

  • root保存的就是当前遍历的文件夹的绝对路径
  • dirs保存当前文件夹下的所有子文件夹的名称(仅一层,孙子文件夹不包括
  • files保存当前文件夹下的所有文件的名称

其次,发现它的遍历文件方式,在图的遍历方式中,那可不就是深度遍历嘛!!!
吼吼,果然自己动手还是会有新发现!!!

冲冲冲!

更多推荐

os.walk()的详细理解(秒懂)

本文发布于:2024-02-12 12:02:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1687714.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:详细   os   walk

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!