天天看點

python 判斷檔案和目錄是否存在

在開發過程中我們有時需要判斷檔案或者判斷目錄是否存在,這個時候我們需要用到python中提供的三種方法:

  1. OS子產品判斷;
  2. open函數和異常捕獲判斷;
  3. 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("目錄不存在")           

複制