Python 3 – os.walk() 方法
描述
方法 walk() 通过自上而下或自下而上遍历目录树来生成目录树中的文件名。
语法
以下是 walk() 方法的语法:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
参数
- top - 每个根目录都产生一个3元组(dirpath,dirnames,filenames)。
-
topdown - 如果指定了可选参数topdown为True或未指定,则从上到下扫描目录。 如果将topdown设置为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.htm
.\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.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