成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Python中能用三種方式分辨文檔存不存在

89542767 / 447人閱讀

  原文中具體闡述了Python中能用三種方式分辨文檔存不存在,原文中根據(jù)實(shí)例編碼推薦的十分詳盡,對(duì)大家學(xué)習(xí)培訓(xùn)或工作具有很強(qiáng)的參照學(xué)習(xí)培訓(xùn)使用價(jià)值,須要的小伙伴們下邊伴隨著小編就來(lái)互相學(xué)習(xí)了解一下吧


  通常是在讀寫文件以前,須要分辨文件或目錄存不存在,要不然一些處理辦法可能會(huì)讓程序流程出差錯(cuò)。所以盡量在進(jìn)行任何實(shí)際操作以前,先分辨文檔存不存在。


  在這里將講解3種分辨文件或文件夾是不是存有的方式,各自使用os控制模塊、Try句子、pathlib模塊。


  1.使用os控制模塊


  os控制模塊里的os.path.exists()方式用以檢測(cè)文檔存不存在。


  判斷文件是否存在


  import os
  os.path.exists(test_file.txt)
  #True
  os.path.exists(no_exist_file.txt)
  #False


  判斷文件夾是否存在


  import os
  os.path.exists(test_dir)
  #True
  os.path.exists(no_exist_dir)
  #False


  可以看出用os.path.exists()方法,判斷文件和文件夾是一樣。


  其實(shí)這種方法還是有個(gè)問題,假設(shè)你想檢查文件“test_data”是否存在,但是當(dāng)前路徑下有個(gè)叫“test_data”的文件夾,這樣就可能出現(xiàn)誤判。為了避免這樣的情況,可以這樣:


  只檢查文件


  import os
  os.path.isfile("test-data")


  通過這個(gè)方法,如果文件”test-data”不存在將返回False,反之返回True。


  即是文件存在,你可能還需要判斷文件是否可進(jìn)行讀寫操作。


  判斷文件是否可做讀寫操作


  使用os.access()方法判斷文件是否可進(jìn)行讀寫操作。


  語(yǔ)法:

  os.access(path,mode)


  path為文件路徑,mode為操作模式,有這么幾種:


  os.F_OK:檢查文件是否存在;


  os.R_OK:檢查文件是否可讀;


  os.W_OK:檢查文件是否可以寫入;


  os.X_OK:檢查文件是否可以執(zhí)行


  該方法通過判斷文件路徑是否存在和各種訪問模式的權(quán)限返回True或者False。


  import os
  if os.access("/file/path/foo.txt",os.F_OK):
  print("Given file path is exist.")
  if os.access("/file/path/foo.txt",os.R_OK):
  print("File is accessible to read")
  if os.access("/file/path/foo.txt",os.W_OK):
  print("File is accessible to write")
  if os.access("/file/path/foo.txt",os.X_OK):
  print("File is accessible to execute")


  2.使用Try語(yǔ)句


  可以在程序中直接使用open()方法來(lái)檢查文件是否存在和可讀寫。


  語(yǔ)法:


  open()


  如果你open的文件不存在,程序會(huì)拋出錯(cuò)誤,使用try語(yǔ)句來(lái)捕獲這個(gè)錯(cuò)誤。


  程序無(wú)法訪問文件,可能有很多原因:


  如果你open的文件不存在,將拋出一個(gè)FileNotFoundError的異常;


  文件存在,但是沒有權(quán)限訪問,會(huì)拋出一個(gè)PersmissionError的異常。


  所以可以使用下面的代碼來(lái)判斷文件是否存在:


  try:
  f=open()
  f.close()
  except FileNotFoundError:
  print("File is not found.")
  except PermissionError:
  print("You don't have permission to access this file.")


  其實(shí)沒有必要去這么細(xì)致的處理每個(gè)異常,上面的這兩個(gè)異常都是IOError的子類。所以可以將程序簡(jiǎn)化一下:


  使用try句子作出判斷,解決全部出現(xiàn)異常比較簡(jiǎn)單和典雅的。并且相較于其他不用引進(jìn)別的外界控制模塊。


  3.使用pathlib模塊


  pathlib模塊在Python3版本是內(nèi)設(shè)控制模塊,但在Python2中也是需要獨(dú)立組裝第三方控制模塊。


  使用pathlib必須要先應(yīng)用目標(biāo)文件夾來(lái)建立path目標(biāo)。此途徑能是文件夾名稱或文件目錄途徑。


  查驗(yàn)途徑存不存在


  path=pathlib.Path("path/file")
  path.exist()


  檢查路徑是否是文件


  path=pathlib.Path("path/file")
  path.is_file()

  綜上所述,這篇文章就給大家介紹完畢了,希望可以給大家?guī)?lái)幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/128730.html

相關(guān)文章

  • Redux 登錄狀態(tài)判斷的一些實(shí)踐

    摘要:高階函數(shù)驗(yàn)證中間件驗(yàn)證驗(yàn)證之所以用三種方式一起是因?yàn)楦唠A函數(shù)在性能調(diào)優(yōu)的時(shí)候并不是特別容易??偨Y(jié)高階函數(shù)適合用在子控件需要確定權(quán)限后渲染中間件適合無(wú)狀態(tài)頁(yè)面中的登錄狀態(tài)判斷驗(yàn)證,使用范圍就比較狹窄了。 最近一直在寫一個(gè)React、Redux的前端項(xiàng)目,登錄狀態(tài)驗(yàn)證這一塊還是比較頭疼的。 我的實(shí)踐下有三種方式來(lái)驗(yàn)證用戶登錄狀態(tài),目前我選擇用三種方式一起用在項(xiàng)目里面。 Redux高階函數(shù)...

    isLishude 評(píng)論0 收藏0
  • 拒絕js阻塞—defer、async作用和區(qū)別分析

    摘要:阻塞原理瀏覽器內(nèi)核可以分成兩部分渲染引擎或者和引擎。等引擎運(yùn)行完畢,瀏覽器又會(huì)把控制權(quán)還給渲染引擎,繼續(xù)和的構(gòu)建。執(zhí)行時(shí),解析暫停。從加載完成立即執(zhí)行來(lái)看,模式執(zhí)行順序與寫的順序無(wú)關(guān),不保證執(zhí)行順序。 js阻塞原理 瀏覽器內(nèi)核可以分成兩部分:渲染引擎(Layout Engine 或者 Rendering Engine)和 JS 引擎。早期渲染引擎和 JS 引擎并沒有十分明確的區(qū)分,但隨...

    wuaiqiu 評(píng)論0 收藏0
  • 如何給列表降維?sum()函數(shù)的妙用

    摘要:上個(gè)月,學(xué)習(xí)群里的同學(xué)問了個(gè)題目,大意可理解為列表降維,例子如下想得到結(jié)果原始數(shù)據(jù)是一個(gè)二維列表,目的是獲取該列表中所有元素的具體值。不經(jīng)意間,函數(shù)的注意事項(xiàng),竟把其它的進(jìn)階內(nèi)容都聯(lián)系起來(lái)了。小小的函數(shù),竟成為學(xué)習(xí)之路上的一個(gè)樞紐。 上個(gè)月,學(xué)習(xí)群里的 S 同學(xué)問了個(gè)題目,大意可理解為列表降維 ,例子如下: oldlist = [[1, 2, 3], [4, 5]] # 想得到結(jié)果:...

    Channe 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<