2016-11-22 104 views
0

我有两个python脚本调用a.pyb.py如何退出嵌套的Python脚本?

从里面a.py,我给命令

os.system('python b.py') 

如果b.py发现了一些异常,我想这两个a.pyb.py的完整执行被叫停。有没有办法做到这一点?

我没有导入b.pya.py。我只是使用os.system()来调用它。

即使我导入另一个脚本,该如何实现?

回答

1

os.system()返回(编码的)过程出口值。 0表示成功。

我宁愿推荐subprocess模块,因为它更强大。看看subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

祝你好运。

1

如果您导入可能会引发您无法处理的异常的模块b,请让异常通过不处理它来暂停执行,或者自行处理它并自行处理。

如果您选择致电os.system检查返回的错误代码;如果Python不能正常退出(即引发异常),它将是非0值。你可以测试并采取相应的行动:

if os.system('python b.py'): 
    # exit from script a.by