try块中的Python条件块

时间:2014-11-18 11:32:08

标签: python

我想做类似以下的事情,但我不确定是否允许:

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

如果print不存在,但当前目录中有一个名为module1的文件,我只想获取module2.py语句。

我测试了无法导入module1且文件module2.py存在的地方,但我从未看到过print语句。有人可以告诉我,我做错了什么?甚至可以在try/except块中包含条件语句吗?

1 个答案:

答案 0 :(得分:0)

您的代码没有任何问题。正如@Tomo所说,您可以使用try块中的任何代码。

你说:

  

我已经运行了测试,其中无法导入module1且文件module2.py存在

这意味着未授予权限以对您的文件module2.py执行os.stat()。 因此,您需要做的就是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