使用 Python 檢查目錄是否包含檔案
Python 是一種用途廣泛的程式語言,廣泛用於各種目的,包括檔案和目錄操作。檔案和目錄操作中最常見的任務之一是檢查目錄是否包含檔案。在本文中,我們將討論如何使用 Python 檢查目錄是否包含檔案。
在深入瞭解實現之前,讓我們先了解目錄和檔案的概念。
目錄是一個包含檔案和其他目錄的資料夾。它用於以分層方式組織檔案和目錄。換句話說,目錄可以包含其他目錄,這些目錄稱為子目錄。
檔案是儲存在計算機上的資料集合。它可以是文字檔案、影像檔案、音訊檔案或任何其他型別的檔案。
現在我們已經對目錄和檔案有了基本的瞭解,讓我們討論如何使用 Python 檢查目錄是否包含檔案。
方法 1:使用 os.listdir() 方法
Python 中的os 模組提供了一種與檔案系統互動的方式。os.listdir() 方法用於獲取目錄中所有檔案和目錄的列表。
以下是如何使用 os.listdir() 方法檢查目錄是否包含檔案:
示例
import os dir_path = r'C:\Users\Leekha\Desktop' if len(os.listdir(dir_path)) == 0: print("Directory is empty") else: print("Directory contains files")
輸出
在實現上述程式碼行後,您將獲得以下輸出:
Directory contains files
讓我們看看以上程式碼是否可以檢測空目錄:
我們在桌面上建立了一個空資料夾,以檢查上述程式碼是否可以檢測到它。
import os dir_path = r'C:\Users\Leekha\Desktop\Empty' if len(os.listdir(dir_path)) == 0: print("Directory is empty") else: print("Directory contains files")
輸出
在實現上述程式碼行後,您將獲得以下輸出:
Directory is empty
在上述程式碼中,我們首先匯入 os 模組。然後我們在 dir_path 變數中定義要檢查的目錄的路徑。
然後我們使用 os.listdir() 方法獲取目錄中所有檔案和目錄的列表。我們使用 len() 函式檢查列表的長度。如果列表的長度為零,則表示目錄為空。如果列表的長度大於零,則表示目錄包含檔案。
方法 2:使用 glob.glob() 方法
Python 中的 glob 模組提供了一種搜尋與特定模式匹配的檔案的方式。glob.glob() 方法用於獲取與特定模式匹配的所有檔案的列表。
示例
以下是如何使用 glob.glob() 方法檢查目錄是否包含檔案:
import glob dir_path = r'C:\Users\Leekha\Desktop' files = glob.glob(dir_path + '/*') if len(files) == 0: print("Directory is empty") else: print("Directory contains files")
輸出
在實現上述程式碼行後,您將獲得以下輸出:
Directory contains files
讓我們看看以上程式碼是否可以檢測空目錄:
我們在桌面上建立了一個空資料夾,以檢查上述程式碼是否可以檢測到它。
import glob dir_path = r'C:\Users\Leekha\Desktop\Empty' files = glob.glob(dir_path + '/*') if len(files) == 0: print("Directory is empty") else: print("Directory contains files")
輸出
在實現上述程式碼行後,您將獲得以下輸出:
Directory is empty
在上述程式碼中,我們首先匯入 glob 模組。然後我們在 dir_path 變數中定義要檢查的目錄的路徑。
然後我們使用 glob.glob() 方法獲取目錄中與方法引數中定義的模式匹配的所有檔案的列表。在本例中,我們使用模式 '/*' 來匹配目錄中的所有檔案。
我們使用 len() 函式檢查列表的長度。如果列表的長度為零,則表示目錄為空。如果列表的長度大於零,則表示目錄包含檔案。
方法 3:使用 os.scandir() 方法
os.scandir() 方法用於獲取目錄中所有檔案和目錄的迭代器。此方法比 os.listdir() 方法更有效,因為它返回迭代器而不是列表。
示例
以下是如何使用 os.scandir() 方法檢查目錄是否包含檔案:
import os dir_path = r'C:\Users\Leekha\Desktop' if not any(os.scandir(dir_path)): print("Directory is empty") else: print("Directory contains files")
輸出
在實現上述程式碼行後,您將獲得以下輸出:
Directory contains files
讓我們看看以上程式碼是否可以檢測空目錄:
我們在桌面上建立了一個空資料夾,以檢查上述程式碼是否可以檢測到它。
示例
import os dir_path = r'C:\Users\Leekha\Desktop\Empty' if not any(os.scandir(dir_path)): print("Directory is empty") else: print("Directory contains files")
輸出
在實現上述程式碼行後,您將獲得以下輸出:
Directory is empty
在上述程式碼中,我們首先匯入 os 模組。然後我們在 dir_path 變數中定義要檢查的目錄的路徑。
我們使用 os.scandir() 方法獲取目錄中所有檔案和目錄的迭代器。我們使用 any() 函式檢查迭代器中是否存在任何檔案。如果迭代器中沒有檔案,則表示目錄為空。如果迭代器中存在檔案,則表示目錄包含檔案。
方法 4:使用 os.path.isdir() 方法
Python 中的 os.path 模組提供了一種執行路徑上的常見操作的方式。os.path.isdir() 方法用於檢查給定路徑是否為目錄。
示例
以下是如何使用 os.path.isdir() 方法檢查目錄是否包含檔案:
import os dir_path = r'C:\Users\Leekha\Desktop' if os.path.isdir(dir_path) and len(os.listdir(dir_path)) > 0: print("Directory contains files") else: print("Directory is empty")
輸出
在實現上述程式碼行後,您將獲得以下輸出:
Directory contains files
讓我們看看以上程式碼是否可以檢測空目錄:
我們在桌面上建立了一個空資料夾,以檢查上述程式碼是否可以檢測到它。
import os dir_path = r'C:\Users\Leekha\Desktop\Empty' if os.path.isdir(dir_path) and len(os.listdir(dir_path)) > 0: print("Directory contains files") else: print("Directory is empty")
輸出
在實現上述程式碼行後,您將獲得以下輸出:
Directory is empty
在上述程式碼中,我們首先匯入 os 模組。然後我們在 dir_path 變數中定義要檢查的目錄的路徑。
我們使用os.path.isdir()方法檢查給定路徑是否為目錄。如果路徑為目錄,我們使用os.listdir()方法獲取目錄中所有檔案和目錄的列表。我們使用len()函式檢查列表的長度。
如果列表的長度大於零,則表示目錄包含檔案。如果列表的長度為零,則表示目錄為空。
結論
在本教程中,我們討論瞭如何使用 Python 檢查目錄是否包含檔案。我們介紹了四種不同的方法來完成此任務。
第一種方法使用os.listdir()方法,第二種方法使用glob.glob()方法,第三種方法使用os.scandir()方法,第四種方法使用os.path.isdir()方法。
所有這些方法都以自己的方式有效,方法的選擇取決於具體的用例。