1. 為什麼要在 Python 中確認檔案是否存在
導言
為了提高程式的穩定性,確認檔案是否存在是不可或缺的步驟。例如,在進行資料讀取或寫入時,如果目標檔案不存在,將會發生錯誤,導致程式中斷。在 Python 中,我們可以使用多種方法來確認檔案是否存在,但根據實際情境選擇最合適的方法是非常重要的。
本文將介紹使用 os
模組、pathlib
模組與 glob
模組進行檔案確認的方法,並說明各種方式的優點與適用情境。
2. 基本方法:os 模組
如何使用 os.path.exists()
os.path.exists()
用來確認指定的路徑是否存在檔案或資料夾。如果存在,則回傳 True
;否則回傳 False
。
import os
if os.path.exists("example.txt"):
print("檔案存在")
else:
print("檔案不存在")
這段程式碼會檢查 example.txt
是否存在,並根據結果輸出對應訊息。os.path.exists()
是一個通用方法,可同時檢查檔案與資料夾的存在與否。
os.path.isfile() 和 os.path.isdir() 的區別使用
os.path.exists()
不會區分是檔案還是資料夾,但透過 os.path.isfile()
或 os.path.isdir()
,可以判斷目標是檔案還是資料夾。
if os.path.isfile("example.txt"):
print("這是一個檔案")
elif os.path.isdir("example.txt"):
print("這是一個資料夾")
else:
print("不存在")
如上所示,在確認目標是否存在後,再進一步判斷是檔案還是資料夾,可以讓後續操作更加精確與彈性。

3. 進階應用:pathlib 模組
使用 Path.exists() 方法
在 pathlib
模組中,可以使用 Path.exists()
方法來確認檔案或資料夾是否存在。和 os.path.exists()
一樣,會回傳 True
或 False
,但程式碼更簡潔可讀。
from pathlib import Path
file_path = Path("example.txt")
if file_path.exists():
print("檔案存在")
else:
print("檔案不存在")
這種寫法會將檔案路徑作為 Path
物件處理,使程式碼更具物件導向風格,後續維護與擴充更方便。
Path.is_file() 與 Path.is_dir()
pathlib
也提供 is_file()
和 is_dir()
方法,可輕鬆判斷目標是檔案還是資料夾。
if file_path.is_file():
print("這是一個檔案")
elif file_path.is_dir():
print("這是一個資料夾")
透過使用 pathlib
,不僅能確認檔案是否存在,還能快速判斷其類型(檔案或資料夾),讓檔案處理更有效率。
實際應用情境
pathlib
在需要處理多個資料夾或檔案的專案中特別有用。它可以簡化複雜的路徑操作,並且具備跨平台特性,能夠在不同作業系統中使用相同的程式碼執行,是跨平台開發的理想選擇。
4. 使用 glob 模組在 Python 中確認檔案是否存在
使用 glob 進行樣式比對
glob
模組可根據檔案名稱或路徑的模式進行搜尋,非常適合一次找出符合特定條件的檔案。在處理大量檔案的情況下,特別有效。
import glob
files = glob.glob('*.txt')
if files:
print("有文字檔案存在")
else:
print("沒有文字檔案")
這段程式碼會列出目前目錄下所有副檔名為 .txt
的檔案,並確認其是否存在。透過這種模式比對方式,可以快速找出符合特定格式的檔案,例如用來管理備份檔案等用途。
實際應用情境
glob
非常適合用在需要操作大量檔案或資料夾,或是想依據特定名稱或副檔名處理檔案的情境。例如定期檢查與管理 log 檔案或暫存檔案等工作,就很適合使用 glob
。

5. 使用例外處理進行安全的檔案操作
為了避免在檔案不存在時發生錯誤,善用例外處理(Exception Handling)也非常重要。透過 try-except
的語法,可以防止程式因錯誤而中止,並向使用者顯示適當的錯誤訊息。
try:
with open("example.txt") as f:
print(f.read())
except FileNotFoundError:
print("檔案不存在")
這段程式會在找不到檔案時捕捉 FileNotFoundError
,避免程式當機,並輸出錯誤提示。這樣不僅提升使用者體驗,也有助於程式的穩定運作。
6. 總結
在 Python 中確認檔案是否存在的方法有很多種,包括 os
模組、pathlib
模組與 glob
模組等。根據不同的使用情境,各種方法各有優勢,靈活選擇使用非常重要。
- 簡單確認檔案是否存在時,
os.path.exists()
是首選。 - 當需要處理複雜路徑或進行跨平台開發時,建議使用
pathlib
。 - 若要依照特定模式搜尋檔案,
glob
模組效果最佳。
了解並正確運用這些方法,可以讓你在使用 Python 進行檔案處理時更有效率且更安全。下一步,建議你繼續學習檔案的讀寫、刪除與複製等操作,進一步提升你的開發能力。