簡體   English   中英

try塊中的Python條件塊

[英]Python conditional block within try block

我想做類似以下的事情,但我不確定是否允許:

try:
  import module1
except Exception,e :
  if os.path.exists("module2.py"):
    print "err importing module1 "+str(e)
  else:
    pass

我只想在module1不存在但當前目錄中有一個名為module2.py的文件時獲取print語句。

我已經在無法導入module2.py並且文件module2.py存在的地方module1測試,但是我從未看到print語句。 有人可以告訴我我做錯了什么嗎? try/except塊中甚至可能有條件語句嗎?

您的代碼沒有錯。 正如@Tomo所說,您可以在try塊中使用任何代碼。

你說:

我已經運行了無法導入module1並且文件module2.py存在的測試

這意味着未授予在文件module2.py上執行os.stat()module2.py 因此,您要做的就是使用所需的權限對文件進行chmod (您可以在777中對其進行chmod作為第一個測試)。

編輯:

由於第一種方法不能提供您期望的結果,因此請應用EAFP指出的內容:

尋求寬恕比允許容易。

因此,您的代碼應運行以下新概念:

try:
  import module1
except Exception,e :
  print"Module 1 could not be imported"+str(e)
try:
  md2=os.path.exists("module2.py"):
  print md2
except Exception,c:
    pass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM