os.walk()
是Python標準庫中的一個函數,可以快速掃描文件夾及其子文件夾中的所有文件,並對這些文件進行處理。在本文中,我們將深入介紹如何使用os.walk()
函數。
一、什麼是os.walk()函數?
os.walk()
函數返回一個三元組,包含一個正在處理的文件夾的父級目錄、當前文件夾的名稱以及當前文件夾中的文件和文件夾。通過遞歸處理,該函數可以得到整個文件夾的目錄結構。
下面是一個簡單的使用os.walk()
函數的示例:
import os
# 遍歷文件夾中的所有文件
for root, dirs, files in os.walk("文件夾路徑"):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
上述Python代碼使用os.walk()
函數遍歷了”文件夾路徑”中的所有文件和文件夾,並輸出了它們的相對或絕對路徑。
二、如何使用os.walk()函數進行文件處理?
1. 根據文件名進行篩選
通過os.walk()
函數,可以快速找到指定文件夾及其子文件夾中的所有文件,然後進行過濾,只處理需要的文件。例如,如果要處理所有以.py為擴展名的文件,可以使用以下代碼:
import os
for root, dirs, files in os.walk("文件夾路徑"):
for file in files:
if file.endswith(".py"):
filepath = os.path.join(root, file)
# 處理文件內容
with open(filepath) as f:
# 打印文件名及文件內容
print(f"處理文件 {filepath}")
print(f.read())
以上代碼實現了對指定文件夾及其子文件夾中的所有.py文件進行處理。
2. 對文件進行重命名
在使用os.walk()
函數遍歷文件夾時,我們可以通過os.rename()
函數對文件進行重命名。下面是一個將所有.jpg圖片文件重命名為.png格式的示例:
import os
for root, dirs, files in os.walk("文件夾路徑"):
for file in files:
if file.endswith(".jpg"):
origin_filepath = os.path.join(root, file)
new_filepath = os.path.join(root, file[:-4] + ".png")
os.rename(origin_filepath, new_filepath)
以上代碼實現了將指定文件夾及其子文件夾中所有的.jpg圖片文件重命名為.png格式。
3. 對文件內容進行修改
在使用os.walk()
函數遍歷文件夾時,我們可以通過open()
函數讀取文件內容並進行修改,然後通過open()
函數重新寫入文件。
下面是一個將指定文件夾及其子文件夾中所有.txt文件中的字符”a”替換為”b”的示例:
import os
for root, dirs, files in os.walk("文件夾路徑"):
for file in files:
if file.endswith(".txt"):
filepath = os.path.join(root, file)
# 修改文件內容
with open(filepath, "r") as f:
content = f.read()
content = content.replace("a", "b")
with open(filepath, "w") as f:
f.write(content)
以上代碼實現了將指定文件夾及其子文件夾中所有的.txt文件中的字符”a”修改為”b”。
三、如何遍歷文件夾下的所有子文件夾?
在使用os.walk()
函數遍歷文件夾時,如果需要遍歷所有子文件夾,則可以設置topdown=False
。使用這個參數可以先處理子文件夾,然後再處理父文件夾。
下面是一個遍歷文件夾及其所有子文件夾的示例:
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))
以上代碼實現了遍歷指定文件夾及其所有的子文件夾,並輸出文件夾和文件的路徑。
四、總結
os.walk()
函數是Python標準庫中一個非常有用的函數,它可以快速掃描指定文件夾及其子文件夾中的所有文件,並對這些文件進行處理。通過本文的介紹,你可以輕鬆地掌握os.walk()
函數的使用方法,實現文件夾操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/199223.html