我想做类似以下的事情,但我不确定是否允许:
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
块中包含条件语句吗?
答案 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