介紹
在Python開發中,處理文件和文件夾是不可避免的任務。而經常需要遍歷文件夾及其子文件夾,並對其中的文件進行一些處理。Python提供了os模塊來處理文件和文件夾的操作,其中os.walk()函數是遍歷文件夾及其子文件夾的常用方法。
正文
os.walk()函數用法
os.walk()函數用於遍歷一個目錄內的所有子目錄和文件,返回當前目錄路徑、當前路徑下所有子目錄名稱和當前路徑下所有文件名稱。
函數語法:
os.walk(top, topdown=True, onerror=None, followlinks=False)
參數說明:
- top:需要遍歷的目錄路徑
- topdown:可選,默認為 True,表示當前目錄遍歷順序是自上而下的,如果為 False,表示自下而上遍歷
- onerror:可選,默認為 None,表示遍歷目錄時發生錯誤如何處理
- followlinks:可選,默認為 False,表示是否跟隨符號鏈接
返回值:
遍歷時,對於每個目錄,os.walk() 會返回一個三元組,分別包含如下內容:
- 當前目錄的相對路徑
- 當前目錄下的子目錄列表
- 當前目錄下的文件列表
使用os.walk()遍歷文件夾及其子文件夾
以下是 os.walk() 方法遍歷文件夾及其子文件夾的示例代碼:
import os
# 要遍歷的目錄
path = "your_path"
# 遍歷目錄及其子目錄,返回一個三元組 (dirpath, dirnames, filenames)
for dirpath, dirnames, filenames in os.walk(path):
# 輸出目錄路徑(相對於輸入路徑)
print("dirpath", dirpath)
# 輸出所有子目錄(相對於輸入路徑)
for dirname in dirnames:
print("dirname", dirname)
# 輸出所有文件路徑(相對於輸入路徑)
for filename in filenames:
print("filename", os.path.join(dirpath, filename))
說明:
- 使用 os.walk() 方法遍歷給定路徑的目錄及其子目錄,返回一個三元組 (dirpath, dirnames, filenames)
- dirpath 是一個字元串,代表當前目錄的路徑
- dirnames 是一個列表,包含當前目錄下所有的子目錄名稱
- filenames 是一個列表,包含當前目錄下所有的文件名稱
- os.path.join(dirpath, filename) 方法用於連接目錄和文件名,以得到文件的完整路徑
使用os.walk()實現文件夾和文件的操作
使用 os.walk() 方法,可以對文件夾及其子文件夾中的文件進行一些操作,例如刪除文件、修改文件名等。以下代碼演示了如何使用 os.walk() 方法實現刪除指定後綴名的所有文件。
import os
# 要遍歷的目錄
path = "your_path"
# 刪除指定後綴名的所有文件
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename.endswith(".txt"):
os.remove(os.path.join(dirpath, filename))
說明:
- 遍歷指定路徑的所有文件夾和文件,如果文件名以 “.txt” 結尾,則刪除文件(使用 os.remove() 函數實現)。
- os.path.join(dirpath, filename)方法用於連接目錄和文件名,以得到文件的完整路徑。
小結
使用 os.walk() 方法可以很方便地實現遍歷文件夾及其子文件夾的功能,同時也可以在遍歷的過程中對文件夾中的文件進行一些操作。學習 os.walk() 方法可以為 Python 文件和文件夾的處理操作提供更多的便利,避免冗長的目錄遞歸過程。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185261.html