python遍歷目錄樹

2021-08-25 05:17:19 字數 1716 閱讀 4630

假定你希望對某個資料夾中的所有檔案改名,包括該資料夾中所有子資料夾中的所有檔案。也就是說,你希望遍歷目錄樹,處理遇到的每個檔案。寫程式完成這件事,可能需要一些技巧。好在,python 提供了乙個函式,替你處理這個過程。請看 c:\delicious 資料夾及其內容,如圖 9-1 所示。

這裡有乙個例子程式,針對圖 9-1 的目錄樹,使用了 os.walk()函式:

import os

for foldername, subfolders, filenames in os.walk('f:\\delicious'):

print('the current folder is ' + foldername)

for subfolder in subfolders:

print('subfolder of ' + foldername + ': ' + subfolder)

for filename in filenames:

print('file inside ' + foldername + ': ' + filename)

print()

os.walk()函式被傳入乙個字串值,即乙個資料夾的路徑。你可以在乙個 for迴圈語句中使用 os.walk()函式,遍歷目錄樹,就像使用 range()函式遍歷乙個範圍的數字一樣。不像 range(),os.walk()在迴圈的每次迭代中,返回 3 個值:

1.當前資料夾名稱的字串。

2.當前資料夾中子資料夾的字串的列表。

3.當前資料夾中檔案的字串的列表。

所謂當前資料夾,是指 for 迴圈當前迭代的資料夾。程式的當前工作目錄,不會因為 os.walk()而改變。就像你可以在** for i in range(10):中選擇變數名稱 i 一樣,你也可以選擇前面列出來的 3 個字的變數名稱。我通常使用 foldername、subfolders 和 filenames。執行該程式,它的輸出如下:

因為 os.walk()返回字串的列表,儲存在 subfolder 和 filename 變數中,所以你可以在它們自己的 for 迴圈中使用這些列表。用你自己定製的**,取代 print()函式呼叫(或者如果不需要,就刪除 for 迴圈)。

遍歷目錄樹

cpath os.getcwd 如果目錄名字為中文 需要轉碼處理 upath unicode cpath,utf 8 for filename in os.listdir upath print filenameimport os for foldername,subfolders,filename...

使用Python遍歷目錄並列印目錄樹

本文章將提供兩個示例,目的是展示如何使用 python 的 os 模組遍歷當前目錄下的所有檔案和子目錄,並形成類似下面簡陋的樹形輸出。a c text.txt e text.txt text.txt b f text.txt g h text.txt text.txt text.txt exampl...

cmd for 遍歷目錄 python 遍歷目錄樹

假定你希望對某個資料夾中的所有檔案改名,包括該資料夾中所有子資料夾中 的所有檔案。也就是說,你希望遍歷目錄樹,處理遇到的每個檔案。寫程式完成這 件事,可能需要一些技巧。好在,python 提供了乙個函式,替你處理這個過程。請看 c delicious 資料夾及其內容,如圖所示。這裡有乙個例子程式,針...