我希望顺序运行一些c脚本,这些脚本分叉自己的进程(在新的命令行窗口中),并在完成后给出"Press any key to continue..."
。从技术上讲,它是一个特殊的编译器。它弹出acommand行窗口,告诉我编译是否成功。但是那个命令行窗口会分配新的进程来编译,这会使它返回0之前应该...
我的第一次尝试是
process = subprocess.Popen(cmd)
process.wait()
迭代每个文件时。不幸的是,这并不等待“按任意键继续...”并在我的脸上爆炸。似乎在内部进程完成时(我无法访问)传递wait()
调用。
相反,如何等待“按任意键继续......”?它还会在按下任何键之前打印一些其他信息以继续排列..
目前,这就是我的代码:
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
completed = False
while not completed:
if process.poll() is not None:
completed = True
print "communicating"
process.communicate("k")
print "communicated"
答案 0 :(得分:2)
您可以使用subprocess.poll
检查状态而不阻止,并subprocess.communicate
将信息发送到子流程。