首页 > 代码库 > os.walk 模块

os.walk 模块

os.walk()可以得到一个三元tupple(dirpath, dirnames, filenames),其中第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。

其中dirpath是一个string,代表目录的路径,dirnames是一个list,包含了dirpath下所有子目录的名字。filenames是一个list,包含了非目录文件的名字。

dirnames和filenames不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name)。

import os


for root, dirs, files in os.walk("/home/xingyuzhou/cnn"):
    for name in files:
        print name
    for dir in dirs:
        print dir
    for rot in root:
        print rot

这是cnn文件夹,在一层目录里有5个文件夹,8个文件:
技术分享

技术分享

技术分享

技术分享

技术分享

从结果可以看出,filenames包含的是整个文件夹及其子文件夹下的文件,而不是第一层文件夹的文件, dirpath和dirpath也一样。

和os.listdir一样,也不是按照文件的顺序来排列的。

os.walk 模块