文件遍历---os.walk(dir)

文件遍历

1. os.walk(dir)

  • 返回的是所有(子)文件夹的三元组(root, dirs, files)
  1. root 所指的是当前正在遍历的这个文件夹的本身的地址
  2. dirs 是一个 list ,内容是该文件夹中所有的目录(即子文件夹的名字)的名字(不包括子目录)
  3. files 同样是 list, 内容是该文件夹中所有的文件(不包括子目录)
文件遍历---os.walk(dir)_第1张图片
image.png
  • 默认是优先遍历top目录,以及top文件夹的每一个子目录。

  • os.walk 的返回值是一个生成器(generator),也就是说我们需要用循环不断的遍历它(不可以直接print),来获得所有的内容。

文件遍历---os.walk(dir)_第2张图片
image.png
  • 第一级文件夹里包含的全是子文件夹,没有文件,因此第一个三元组的files为空
  • 第二级文件夹内只有一个文件有子文件夹cla,因此其他的dirs为空,并优先遍历这个子文件夹
  • for f in sorted(os.walk(dir)), 则 f[0]表示返回的所有三元组的root项,f[1]表示所有的子目录(子文件夹)名,f[2]表示所有的子文件名。若有多层文件夹,想要取出所有的子文件进行操作,则直接迭代取出f[2]即可。

你可能感兴趣的:(文件遍历---os.walk(dir))