zoukankan      html  css  js  c++  java
  • Python入门之os.walk()方法

    os.walk方法,主要用来遍历一个目录内各个子目录和子文件。

    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循环自动完成递归枚举

    例如:

    F:aaa 目录是这样的文件目录结构

    F:aaa

    |--------1.txt

    |--------2.txt

    |--------3.txt

    |--------4

             |-------5.txt

             |-------6.txt

             |-------7.txt

     

    分别打印各个参数的实际值

    #!/usr/bin/env python  
    # 2.py  
    # use UTF-8  
    # Python 3.3.0  
      
    # os.walk()的使用  
    import os  
      
    # 枚举dirPath目录下的所有文件  
      
    def main():  
    #begin  
        fileDir = "F:" + os.sep + "aaa"     # 查找F:aaa 目录下    
        for root, dirs, files in os.walk(fileDir):  
        #begin  
            print(root)  
            print(dirs)  
            print(files)  
        #end  
        os.system("pause")  
    #end  
      
    if __name__ == '__main__':  
    #begin  
        main()  
    #end  
      
      
    # 输出  
    # F:aaa  
    # ['4']  
    # ['1.txt', '2.txt', '3.txt']  
    # F:aaa4  
    # []  
    # ['5.txt', '6.txt', '7.txt']


    你也可以这样,用元组a,通过for循环即可完成目录的递归.

    #!/usr/bin/env python  
    # 3.py  
    # use UTF-8  
    # Python 3.3.0  
      
    # os.walk()的使用  
    import os  
      
    # 枚举dirPath目录下的所有文件  
      
    def main():  
    #begin  
        fileDir = "F:" + os.sep + "aaa"     # 查找F:aaa 目录下    
        for a in os.walk(fileDir):  
        #begin  
            print(a[0])  
            print(a[1])  
            print(a[2])  
        #end  
        os.system("pause")  
    #end  
      
    if __name__ == '__main__':  
    #begin  
        main()  
    #end  
      
      
    # 输出  
    # F:aaa  
    # ['4']  
    # ['1.txt', '2.txt', '3.txt']  
    # F:aaa4  
    # []  
    # ['5.txt', '6.txt', '7.txt']

    你还可以这样,先打印目录,再打印各个文件

    #!/usr/bin/env python  
    # 2.py  
    # use UTF-8  
    # Python 3.3.0  
      
    # os.walk()的使用  
    import os  
      
    # 枚举dirPath目录下的所有文件  
      
    def main():  
    #begin  
        fileDir = "F:" + os.sep + "aaa"     # 查找F:aaa 目录下    
        for root, dirs, files in os.walk(fileDir):  
        #begin  
            for dir in dirs:  
            #begin  
                print(os.path.join(root, dir))  
            #end  
            for file in files:  
            #begin  
                print(os.path.join(root, file))  
            #end  
        #end  
        os.system("pause")  
    #end  
      
    if __name__ == '__main__':  
    #begin  
        main()  
    #end  
      
      
    # 输出  
    # F:aaa4  
    # F:aaa1.txt  
    # F:aaa2.txt  
    # F:aaa3.txt  
    # F:aaa45.txt  
    # F:aaa46.txt  
    # F:aaa47.txt
  • 相关阅读:
    <audio> 标签简介
    <sessionState>
    为 IIS 7.0 配置 <system.webServer>
    Litepal 数据库操作框架的使用 (火)
    Oracle Study之-AIX6.1构建Oracle 10gR2 RAC(4)
    【iOS开发-55】图片轮播案例:scrollView的分页、滚动栏、利用代理控制定时器和Page Control以及多线程问题
    小白学react之网页获取微信用户信息
    HTML5游戏实战(1):50行代码实现正面跑酷游戏
    浮动、定位
    Tomcat7.0源代码分析——启动与停止服务原理
  • 原文地址:https://www.cnblogs.com/insane-Mr-Li/p/12779179.html
Copyright © 2011-2022 走看看