這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)python怎么判斷文件是否存在,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在紫金等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站,成都外貿(mào)網(wǎng)站制作,紫金網(wǎng)站建設(shè)費(fèi)用合理。
在操作文件前,檢查文件是否存在也是一個(gè)良好的編程習(xí)慣。通常來(lái)說(shuō),有三種常見(jiàn)方式來(lái)判斷文件夾或文件是否存在,分別是os模塊,try語(yǔ)句和pathlib模塊。
python學(xué)習(xí)網(wǎng),大量的免費(fèi)python視頻教程,歡迎在線學(xué)習(xí)!
os模塊
os模塊中的os.path.exists(path)可以檢測(cè)文件或文件夾是否存在,path為文件/文件夾的名字/絕對(duì)路徑。返回結(jié)果為True/False
print os.path.exists("/untitled/chapter3.py")print os.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__': if os.access("/untitled/chapter3.py", os.F_OK): print "File path is exist." if os.access("/untitled/chapter3.py", os.R_OK): print "File is accessible to read" if os.access("/untitled/chapter3.py", os.W_OK): print "File is accessible to write" if os.access("/untitled/chapter3.py", os.X_OK): print "File is accessible to execute"
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() except IOError: print "File is not accessible."
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") print path.exists() print path.is_file()
上述就是小編為大家分享的python怎么判斷文件是否存在了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。