Python os.walk() 方法



OS 模块的 Python walk() 方法通过自顶向下或自底向上遍历树,显示指定目录树中的文件名。

对于树中的每个目录,os.walk() 方法都会生成一个 3 元组,其中包含目录路径、当前目录中的子目录列表和文件名。

语法

以下是 Python os.walk() 方法的语法:

os.walk(top, topdown, onerror, followlinks)

参数

Python os.walk() 方法接受以下参数:

  • top - 表示根目录的路径。

  • topdown - 这是一个可选参数。如果设置为 "True"(默认值),则自顶向下遍历目录树;如果设置为 "False",则自底向上遍历。

  • onerror - 用于处理潜在错误。

  • followlinks - 也是一个可选参数,如果设置为 true,则会跟随符号链接。

返回值

Python os.walk() 方法返回一个 3 元组,包含 dirpath、dirnames 和 filenames。

示例

以下示例显示了 walk() 方法的使用方法。这里,方法将从当前目录开始遍历。

import os
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))

让我们编译并运行上面的程序,这将自底向上扫描所有目录和子目录。

./tmp/test.py
./.bash_logout
./amrood.tar.gz
./.emacs
./httpd.conf
./www.tar.gz
./mysql.tar.gz
./test.py
./.bashrc
./.bash_history
./.bash_profile
./tmp

如果将topdown的值更改为 True,则会得到以下结果:

./.bash_logout
./amrood.tar.gz
./.emacs
./httpd.conf
./www.tar.gz
./mysql.tar.gz
./test.py
./.bashrc
./.bash_history
./.bash_profile
./tmp
./tmp/test.py

示例

也可以显示具有特定扩展名的文件。如下例所示,我们只列出扩展名为 ".py" 的文件。

import os

print("Listing Python file:")
for dirpath, dirnames, filenames in os.walk("."):
   for filename in filenames:
      if filename.endswith(".py"):
         print(filename)

运行上述代码后,将显示以下输出:

Listing Python file:
isatty.py
ftrunc.py
fstat.py
mkdrs.py
renames.py
lsta.py
openp.py
rmdir.py
cwd.py
pthcnf.py
python_files_io.htm
广告