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
廣告
© . All rights reserved.