python os.walk的用法与举例

发布时间:2019-09-11 07:44:06编辑:auto阅读(1453)

    os.walk(top, topdown=True, onerror=None, followlinks=False) 


    可以得到一个三元tupple(dirpath, dirnames, filenames), 

    第一个为文件路径,第二个为所有文件夹名,第三个是所有文件夹下的文件,它会输出所有的文件和路径

    dirpath 是一个string,代表目录的路径,

    dirnames 是一个list,包含了dirpath下所有子目录的名字。

    filenames 是一个list,包含了非目录文件的名字。

    这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).


    通过for循环自动完成递归枚举

    [root:/opt]>$ tree /opt/
    /opt/
    ├── aa
    └── test
       ├── aa
       └── file

    2 directories, 2 files

    #!/usr/bin/python
    # -*- coding: utf8 -*-
    #*************************************************************************
    # File Name: os.walk.py
    # Author: huxianyong
    # Mail: hxy123@163.com
    # Created Time: Wed 21 Dec 2016 12:29:55 PM CST
    #************************************************************************

    import os
    def main():
       file_dir = "/" + os.sep + "opt"
       for i,j,k in os.walk(file_dir):
           print "起始路径为: ",i
           print "起始路径下的文件夹为: ",j
           print "起始路径下的文件为: ",k
           print "\n"
    if __name__ == '__main__':                                                          
       main()

    [root:/python]>$ python os.walk.py
    起始路径为:  //opt
    起始路径下的文件夹为:  ['test']
    起始路径下的文件为:  ['aa']


    起始路径为:  //opt/test
    起始路径下的文件夹为:  ['aa']
    起始路径下的文件为:  ['file']


    起始路径为:  //opt/test/aa
    起始路径下的文件夹为:  []
    起始路径下的文件为:  []

    可以换另一种方法,得到的结果相同

    import os
    def main():
    file_dir = "/" + os.sep + "opt"
    for i in os.walk(file_dir):
    print "起始路径为: ",i[0]
    print "起始路径下的文件夹为: ",i[1]
    print "起始路径下的文件为: ",i[2]
    print "\n"
    if __name__ == '__main__':
    main()

    也可以以另一种形式展示:

    import os
    def main():
    file_dir = "/" + os.sep + "opt"
    for i,j,k in os.walk(file_dir):
    for h in j:
    print "起始路径下的文件夹为: "
    print(os.path.join(i,h))
    for g in k:
    print "起始路径下的文件为: "
    print(os.path.join(i,g))
    print "\n"
    if __name__ == '__main__':
    main()

    [root:/python]>$ python os.walk3.py
    起始路径下的文件夹为:
    //opt/test
    起始路径下的文件为:
    //opt/aa


    起始路径下的文件夹为:
    //opt/test/aa
    起始路径下的文件为



关键字