Python 3 - os.walk() 方法

  • 描述

    方法walk()通过自上而下或自下而上遍历目录树来生成目录树中的文件名。
  • 句法

    以下是语法walk()方法 -
    
    os.walk(top[, topdown = True[, onerror = None[, followlinks = False]]])
    
  • 参数

    • top- 每个目录都以目录为根,产生三元组,即(dirpath,dirnames,filenames)
    • topdown− 如果可选参数 topdown 为 True 或未指定,则从上到下扫描目录。如果 topdown 设置为 False,则从下到上扫描目录。
    • onerror- 这可以显示继续行走的错误,或引发异常以中止行走。
    • followlinks− 如果设置为真,则访问符号链接指向的目录。
  • 返回值

    此方法不返回任何值。
  • 例子

    以下示例显示了 walk() 方法的用法。
    
    # !/usr/bin/python3
    import os
    os.chdir("d:\\tmp")
    for root, dirs, files in os.walk(".", topdown = False):
       for name in files:
          print(os.path.join(root, name))
       for name in dirs:
          print(os.path.join(root, name))
    
  • 结果

    让我们编译并运行上面的程序,这将自底向上扫描所有目录和子目录
    
    .\python2\testdir\Readme_files\Lpt_Port_Config.gif
    .\python2\testdir\Readme_files\ParallelPortViever.gif
    .\python2\testdir\Readme_files\softcollection.css
    .\python2\testdir\Readme_files\Thumbs.db
    .\python2\testdir\Readme_files\Yellov_Ball.gif
    .\python2\testdir\Readme.htm
    .\python2\testdir\Readme_files
    .\python2\testdir
    .\Applicationdocs.docx
    .\book.zip
    .\foo.txt
    .\java.ppt
    .\python2
    
    如果你要改变的价值topdown为真,那么它会给你以下结果 -
    
    .\Applicationdocs.docx
    .\book.zip
    .\foo.txt
    .\java.ppt
    .\python2
    .\python2\testdir
    .\python2\testdir\Readme.htm
    .\python2\testdir\Readme_files
    .\python2\testdir\Readme_files\Lpt_Port_Config.gif
    .\python2\testdir\Readme_files\ParallelPortViever.gif
    .\python2\testdir\Readme_files\softcollection.css
    .\python2\testdir\Readme_files\Thumbs.db
    .\python2\testdir\Readme_files\Yellov_Ball.gif