在 Python 讀取檔案上提供兩種方法來做為參考,早期都是使用OS此套件來檢查物件等等,後來發現 Pathlib 更好使用跨多種作業系統上時可以自動轉換路徑,可避免了目錄寫法不同的陷阱,下方提供OS、pathlib 兩套件檢查檔案、目錄、超連結示範寫法。
Python OS 模組
使用Python OS 套件檢查檔案是否存在
import os
# 要檢查的檔案路徑
filepath = "/tmp/test.txt"
# 檢查檔案是否存在
if os.path.isfile(filepath):
print("檔案存在")
else:
print("檔案不存在")
使用Python OS 套件檢查是否為超連結
import os
# 要檢查的檔案路徑
filepath = "/tmp/test.txt"
# 檢查是否為連結檔
if os.path.islink(filepath):
print("超連結檔")
else:
print("非超連結檔")
使用Python OS 套件檢查目錄是否存在
import os
# 要檢查的目錄路徑
folderpath = "/tmp"
# 檢查目錄是否存在
if os.path.isdir(folderpath):
print("目錄存在")
else:
print("目錄不存在")
使用Python OS 套件檢查路徑或檔案是否存在
os.path.exists 跟上面兩個有點不同,他會檢查的是路徑或檔案只要存在就會回傳真,所以在使用上要特別注意。
import os
# 要檢查的目錄路徑
folderpath = "/tmp"
# 檢查路徑是否存在
if os.path.exists(filepath):
print("路徑存在")
else:
print("路徑不存在")
Python pathlib 模組
在Python 3.4後引入的套件,用物件導向的方式來操作檔案,整體使用上又更加簡單一些。
使用Python pathlib 套件檢查檔案是否存在
# 引入 pathlib 模組
from pathlib import Path
# 檔案路徑
file = Path("/tmp/test.log")
# 檢查路徑是否為檔案
if file.is_file():
print("路徑是檔案。")
else:
print("路徑不是檔案。")
使用Python pathlib 套件檢查是否存為超連結
# 引入 pathlib 模組
from pathlib import Path
# 檔案路徑
file = Path("/tmp/test.log")
# 檢查路徑是否為目錄
if my_file.is_symlink():
print("是超連結")
else:
print("不是超連結")
使用Python pathlib 套件檢查目錄是否存在
# 引入 pathlib 模組
from pathlib import Path
# 目錄路徑
file = Path("/tmp")
# 檢查路徑是否為目錄
if my_file.is_dir():
print("是目錄")
else:
print("不是目錄")
使用Python pathlib 套件檢查目錄或檔案是否存在
# 引入 pathlib 模組
from pathlib import Path
# 目錄路徑
file = Path("/tmp")
# 檢查路徑是否存在
if my_file.exists():
print("路徑存在。")
else:
print("路徑不存在。")