我想开始一个过程,等待2秒并打印出目前为止stderr和stdout管道中的任何内容,然后退出。这是我到目前为止的代码,它似乎没有像希望的那样工作。我做错了什么?
有3个问题:
如果调用脚本退出,子进程会退出吗?如果是这样,我应该如何修改 函数调用,即使子进程运行完成 调用脚本退出?
cmdStr = "./stepper.py"
proc = subprocess.Popen(cmdStr, shell=True, bufsize=-1, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
print "polling"
time.sleep(2)
print "done"
print proc.stdout.readline()
这是stepper.py的样子:
out = open("stepper.log", 'w')
for idx in range(3):
time.sleep(2)
print "Idx",idx
sys.stdout.flush()
out.write("%d\n"%(idx))
print "fnished"
out.write("cloing\n")
out.close()