在 Python 中遍歷目錄中的檔案

Muhammad Waiz Khan 2023年1月30日 2021年2月7日
  1. 在 Python 中使用 os.listdir() 方法遍歷目錄中的檔案
  2. 在 Python 中使用 pathlib.path().glob() 方法遍歷目錄中的檔案
  3. 在 Python 中使用 os.walk() 方法遍歷目錄中的檔案
  4. 在 Python 中使用 iglob() 方法遍歷目錄中的檔案
在 Python 中遍歷目錄中的檔案

本教程將講解在 Python 中遍歷目錄中的檔案的不同方法。我們需要在目錄中尋找一個檔案來實現檔案共享、檔案檢視或檔案載入等功能,以對儲存在其中的資料執行一些操作。

假設我們有一個檔名,需要從這個檔案中讀取資料,我們需要一些方法來遍歷目錄中的檔案,以找到我們需要的檔案。下面解釋了 Python 中用於遍歷目錄中的檔案的各種方法。

在 Python 中使用 os.listdir() 方法遍歷目錄中的檔案

os 模組的 listdir() 方法將目錄路徑作為輸入,並返回該目錄中所有檔案的列表。由於我們要找到該目錄中的具體檔案,所以我們要通過檔名的迴圈來找到所需的檔案。下面的程式碼示例演示瞭如何使用 Python 中的 listdir() 方法,通過迭代找到一個特定的檔案。

import os
files = os.listdir("Desktop/myFolder")
myfile = 'filename.txt'

for filename in files:
    if filename == myfile:
        continue

在 Python 中使用 pathlib.path().glob() 方法遍歷目錄中的檔案

pathlib 模組的 path() 方法將目錄路徑字串作為輸入,並返回該目錄和子目錄中所有檔案的路徑列表。

假設我們要查詢的檔案是 .txt 檔案,我們可以通過 path().glob() 方法得到所有 .txt 檔案的路徑。下面的程式碼示例演示瞭如何使用 Python 中的 path 方法遍歷一個目錄中所有的 .txt 檔案。

from pathlib import Path

pathlist = Path("Desktop/myFolder").glob('**/*.txt')
myfile = 'filename.txt'
for path in pathlist:
    if path.name == myfile:
        continue

模式**/*.txt 返回當前資料夾及其子資料夾中所有副檔名為 txt 的檔案。path.name 只返回檔名而不是完整的路徑。

在 Python 中使用 os.walk() 方法遍歷目錄中的檔案

os 模組的 walk() 方法也是將目錄路徑字串作為輸入,並將根目錄的路徑作為字串返回,子目錄的列表,以及當前目錄及其子目錄中所有檔案的列表。

要找到名稱為 filename.txt 的檔案,我們可以先得到該目錄中的所有檔案,然後再通過迴圈得到所需的檔案。下面的程式碼示例演示瞭如何通過遍歷一個目錄中的檔案來查詢檔案。

import os

myfile = 'filename.txt'
for root, dirs, files in os.walk("Desktop/myFolder"):
    for file in files:
        if file == myfile:
            print(file)

在 Python 中使用 iglob() 方法遍歷目錄中的檔案

glob() 模組的 iglob() 方法將所需檔案的目錄路徑和副檔名作為輸入,並返回所有具有相同副檔名的檔案路徑。下面的程式碼示例演示瞭如何在 Python 中使用 iglob() 方法在目錄中迴圈查詢所需檔案。

import glob

for filepath in glob.iglob('drive/test/*.txt'):
    if filepath.endswith('/filename.txt'):
        print(filepath)

相關文章 - Python File