文章目录
os.walk()
os.walk
访问目录,并返回可以访问该目标的生成器:
walk(top, topdown=True, onerror=None, followlinks=False)`
Params:
- top:所要遍历的目录地址;
- topdown:默认为真,表示优先遍历子目录;
- 其他默认就可以了
- 如果 topdown 参数为真,
walk
会遍历top
文件夹,与top
文件夹中每一个子目录。 os.walk
的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所需要的内容。每次遍历的对象都是返回一个三元组(root,dirs,files)
。- root:所指的是当前正在遍历的这个文件夹的本身的地址。
- dirs:是一个list,内容是该文件夹中所有的目录的名字(不包括子目录)。
- files:同样是一个list,内容是该文件夹所有的文件(不包括子目录)
例如:
import os
i = 0
for (root, dirs, files) in os.walk("../"):
print("index: ", i)
print("root: ", root)
print("dirs: ", dirs)
print("files: ", files)
i += 1
print("\n")
"""
结果如下:
index: 0
root: ../
dirs: ['b', 'mlclass-ex6-jin', 'ros_dynamixel', 'catkin_ws', 'ros_test']
files: []
index: 1
root: ../b
dirs: ['tcp_cs_thread', 'python_mode', 'C++', 'arithmetic', 'tcp_cs_select', 'udp_cs', 'tcp_cs_fcntl', 'tcp_cs', 'HelloZach', 'tcp_cs_pid']
files: ['setup.py~']
index: 2
root: ../b/tcp_cs_thread
dirs: []
files: ['abc.txt', 'tcp_net_server', 'test.txt', 'tcp_net_client.c', 'tcp_net_client', 'tcp_net_server.c']
...
"""