在開發過程中我們有時需要判斷檔案或者判斷目錄是否存在,這個時候我們需要用到python中提供的三種方法:
- OS子產品判斷;
- open函數和異常捕獲判斷;
- pathlib子產品判斷。
零、OS子產品判斷
OS子產品判斷檔案或目錄是否存在是很常用的,我們來看一下具體怎麼使用
import os
# 判斷檔案是否存在
if os.path.isfile("e:/test/test.txt"):
print("檔案存在!")
else:
print("檔案不存在!")
# 判斷目錄是否存在
if os.path.isdir("e:/test"):
print("目錄存在!")
else:
print("目錄不存在!")
複制
小知識:判斷檔案是否存在還有一種方法,即利用 os.access 方法,傳回False表示檔案不存在,傳回True表示檔案存在,例子如下:
os.access("e:/test/test.txt", os.F_OK)
一、open函數和異常捕獲判斷
這種方法有點奇葩,我個人不建議使用該方法去判斷。這個方法的思路是利用 open 函數去打開一個檔案,如果這個檔案不存在将會報錯,利用 try except 來捕獲這個錯誤。例子如下:
try:
file = open("e:/test/test.txt")
file.close()
print("是個檔案")
except FileNotFoundError:
print("檔案不存在或目錄不存在")
except IsADirectoryError:
print("這是個目錄")
except PermissionError:
print("沒權限")
except:
print("其他錯誤")
複制
二、pathlib子產品判斷
pathlib 子產品判斷檔案或者檔案夾是否存在。用法如下:
import pathlib
path = pathlib.Path("e:/test/test.txt")
if path.exists():
if path.is_file():
print("是檔案")
elif path.is_dir():
print("是目錄")
else:
print("不是檔案也不是目錄")
else:
print("目錄不存在")
複制