Python的walk()
方法通过自上而下或自下而上地遍历树来生成目录树中的文件名。
语法
以下是walk()
方法的语法 -
os.walk(top[, topdown = True[, onerror = None[, followlinks = False]]])
参数
- top - 根目录下的每个目录产生
3
元组,即(dirpath
,dirnames
,filenames
) - topdown - 如果可选参数上限为
True
或未指定,则从上到下扫描目录。 如果上限设置为False
,则从下到上扫描目录。 - onerror - 这可能会显示错误以继续步行,或者引发异常来中止步行。
- followlinks - 这将访问符号链接指向的目录(如果设置为
true
)。
返回值
- 此方法不返回任何值。
示例
以下示例显示了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.html
.\python2\testdir\Readme_files
.\python2\testdir
.\Applicationdocs.docx
.\book.zip
.\foo.txt
.\java.ppt
.\python2
如果将topdown
的值更改为True
,则会给以下结果 -
.\Applicationdocs.docx
.\book.zip
.\foo.txt
.\java.ppt
.\python2
.\python2\testdir
.\python2\testdir\Readme.html
.\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