在os.walk(startdir)
中,根、目录、文件的循环通过以下步骤工作?
for root in os.walk(startdir)
for dir in root
for files in dir
获取start dir的根目录:C:\ dir1\dir2\startdir
在C:\ dir1\dir2\startdir中获取文件夹并返回文件夹列表“dirlist”
获取第一个目录列表项中的文件,并将文件列表“filelist”作为文件列表的第一个项返回。
移到目录列表中的第二个项目,并将此文件夹中的文件列表“filelist2”作为文件列表中的第二个项目返回。等
移到foldertree中的下一个根目录并从2开始。等
对吧?或者它只是先得到所有根,然后是所有dirs,然后是所有文件?
最小可运行示例
这就是我喜欢学习的方式:
输出:
主.py
输出:
这一切都很清楚:
path
是每个步骤的根目录dirnames
是每个path
中目录基名称的列表filenames
是每个path
中的文件基名列表在Ubuntu 16.04,Python 3.5.2上测试。
修改
dirnames
更改树递归这基本上是你唯一需要记住的事情。
例如,如果对
dirnames
执行以下操作,则会影响遍历:漫游文件或目录
如果要遍历的输入是文件或目录,则可以如下处理:
简单地说,os.walk()将生成给定路径中存在的路径、文件夹和文件的元组,并继续遍历子文件夹。
这将生成子目录中所有子目录、文件和文件的路径
os.walk
返回一个生成器,它创建一个值元组(当前路径、当前路径中的目录、当前路径中的文件)。每次调用生成器时,它将递归地跟踪每个目录,直到从调用walk的初始目录中没有更多的子目录可用为止。
因此
所以
或者这个
或者,如果要查找文件,可以执行以下操作:
相关问题 更多 >
编程相关推荐