import os
import time
t1=time.time()
for i in os.walk("D:"+os.sep+"pythonInstall"):
print(i[0])
print(i[1])
print(i[2])
print(time.time()-t1)
以上是我测试的例子,
其实os.walk(filedir)
这个函数会返回三个对象,依次是:
- dirpath(目录路径,它是一个string类型)
- dirname(子目录名,它是一个列表,因为在一个目录路径下会有很多很多子目录)
- filename(文件名,它也是一个列表,因为同一目录下一班有多个文件)
那么,在这里需要注意的一点是:
-他并不是返回一次,在上面的程序中我使用for来遍历返回的每一个dirpath,这是什么意思呢?
下面我举个例子
- 就像是tree这种结构,
os.walk("D:"+os.sep+"pythonInstall"):
它返回的第一个路径是D://pythoninstall
,如果把它比作tree的root的话,那么下一次他返回的路径名就是root+从左边数第一个与他有直接关系的孩子节点的子目录,直到遍历所有的路径。 - 那么他的dirname(子目录名)就是当前dirpath的非文件名的孩子节点,例如,如果当面dirpath是
D:\pythonInstall\DLLs
,
这些是当前路径里面的,他的dirname
就是该路径下的所有路径名构成的列表,显然里面没有路径名,所以返回一个空列表,而filename
就是上图中所有文件名构成的列表
import os
import time
t1=time.time()
for i in os.walk(r"D:\pythonInstall\DLLs"):
print(i[0])
print(i[1])
print(i[2])
print(time.time()-t1)
除此之外,它每次返回的dirpath,如果用tree的结构来形容,就是每次都是从root到叶子节点,一直到底,然后再回来继续返回下一个儿子节点的dirpath