try块中的Python条件块

try块中的Python条件块,python,Python,我想做以下事情,但我不确定是否允许: try: import module1 except Exception,e : if os.path.exists("module2.py"): print "err importing module1 "+str(e) else: pass 如果module1不存在,但当前目录中有一个名为module2.py的文件,我只想获取print语句 我已经在module1无法导入且文件module2.py存在的地方对其进行了测试,但

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

try:
  import module1
except Exception,e :
  if os.path.exists("module2.py"):
    print "err importing module1 "+str(e)
  else:
    pass
如果
module1
不存在,但当前目录中有一个名为
module2.py的文件,我只想获取
print
语句


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

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

你说:

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

这意味着不授予对文件
module2.py执行操作的权限。
因此,您所要做的就是使用所需的权限对文件进行修改(您可以在777中对其进行chmod,作为第一个测试)

编辑:

由于第一种方法没有给出您期望的结果,请应用以下状态:

请求原谅比允许更容易

因此,您的代码应该运行以下新概念:

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

您可以在try/except中使用任何代码。尝试veryfing
os.getcwd()
返回您期望的结果。仅仅因为文件存在于某个地方并不意味着它在
sys.path
中找到。如果模块1没有导入,那么它将在块之外执行。现在except块中有一个if条件,您希望在其中查找当前工作目录中是否存在module2.py。我对你们要求的理解正确吗?您也尝试过在os.path.exists()@kvivek中给出module2.py的绝对路径。我上面发布的代码来自一个常见的python脚本,该脚本将位于两个目录/dir1和/dir2中。我无法使用绝对路径,因为我想检查当前目录,该目录将是/dir1或/dir2。是否使用IDE运行代码?我已尝试更改权限(chmod 777)。print语句仍然没有执行。好的,我尝试过了,但“print md2”打印错误。这很奇怪,因为module2.py确实存在于当前目录中,如果我直接从当前目录中的python解释器运行以下命令,我会得到True:>>>print os.path.exists(“module2.py”)True@oggiemc真奇怪。对不起,我不能再帮你了。这很奇怪。谢谢您的帮助。@oggiemc您是否使用给定的IDE来运行代码?