[英]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.