子进程调用避免在错误后停止

时间:2014-06-04 13:50:14

标签: python subprocess

我在for循环中将程序称为subprocess.call()然后它会执行某些操作。但是,在被调用的程序崩溃之后(不,我无法避免),python脚本终止。

代码:

with open("runtests.output", "w") as output:
    for i in range(1,5):
        for j in range(2,5):
            subprocess.call(["runprogram", "with", "arguments"])
            output.write(str(i) + str(j))
            output.write(str(resource.getrusage(resource.RUSAGE_CHILDREN)))
            output.write("\n")

在这种情况下,runprogram with arguments在某些时候失败,即在内部for循环中的第三个循环,然后整个脚本停止。但是,我希望脚本继续调用subrpocesses,直到所有循环都循环。 那么如何避免这种行为?

编辑: 试过

try: 
   call and writes here
except:
   print "Ohai"

实际输出是ABORT的两倍,它被取消,这是runprogram的主要过程,但随后ABORT来自runprogram的子进程1}}然后整个脚本失败。也许这与它有关?

此外,"Ohai"未打印...

0 个答案:

没有答案