python在操作文件前,檢查文件是否存在也是一個(gè)良好的編程習(xí)慣。通常來(lái)說(shuō),有三種常見(jiàn)方式來(lái)判斷文件夾或文件是否存在,分別是os模塊,try語(yǔ)句和pathlib模塊。
os模塊
os模塊中的os.path.exists(path)可以檢測(cè)文件或文件夾是否存在,path為文件/文件夾的名字/絕對(duì)路徑。返回結(jié)果為True/False
printos.path.exists("/untitled/chapter3.py")printos.path.exists("chapter3.py")
這種用法既能檢測(cè)文件也能檢測(cè)文件夾,這也帶來(lái)問(wèn)題,假如我想找一個(gè)命名為helloworld的文件,使用exists可能命中同名的helloworld文件夾。這時(shí)使用os.path.isdir()和os.path.isfile()可以加以區(qū)分。如果進(jìn)一步想判斷是否可以操作文件,可以使用os.access(path,model),model為操作模式,具體如下
if__name__=='__main__':
ifos.access("/untitled/chapter3.py",os.F_OK):
print"Filepathisexist."
ifos.access("/untitled/chapter3.py",os.R_OK):
print"Fileisaccessibletoread"
ifos.access("/untitled/chapter3.py",os.W_OK):
print"Fileisaccessibletowrite"
ifos.access("/untitled/chapter3.py",os.X_OK):
print"Fileisaccessibletoexecute"
try語(yǔ)句
對(duì)文件最簡(jiǎn)單的操作方法是直接使用open()方法,但是文件不存在,或發(fā)生權(quán)限問(wèn)題時(shí)open方法會(huì)報(bào)錯(cuò),所以配合try語(yǔ)句使用來(lái)捕捉一異常。try...open語(yǔ)法簡(jiǎn)單優(yōu)雅,可讀性強(qiáng),而且不需要引入任何模塊
if__name__=='__main__':
try:
f=open("/untitled/chapter3.py")
f.close()
exceptIOError:
print"Fileisnotaccessible."
pathlib模塊
在python2中pathlib屬于第三方模塊,需要單獨(dú)安裝。但是python3中pathlib已經(jīng)是內(nèi)建模塊了
pathlib用法簡(jiǎn)單,與open類似。首先使用pathlib創(chuàng)建對(duì)象,進(jìn)而使用exists(),is_file()等方法
if__name__=='__main__':
path=pathlib.Path("chapter3.py")
printpath.exists()
printpath.is_file()
以上內(nèi)容為大家介紹了python培訓(xùn)之判斷文件是否存在,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。