Python等待子进程完成

时间:2015-03-08 14:08:20

标签: python ubuntu raspberry-pi raspbian libgphoto2

我对Python很陌生,我对子流程类有点问题。

我用:

启动外部程序
      thread1.event.clear()
      thread2.event.clear()
      print "Sende Motoren STOP"
      print "Gebe BILD in Auftrag"
      proc = Popen(['gphoto2 --capture-image &'], shell=True, stdin=None, stdout=None, stderr=None, close_fds=True)
      sleep (args.max+2)
      thread1.event.set()
      thread2.event.set()
      sleep (args.tp-2-args.max)

我的问题是,在我启动Python脚本的shell中,我仍然得到GPHOTO2的输出,我认为Python仍在等待GPHOTO完成。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

subprocess.Pope州的文档:

stdin, stdout and stderr specify the executed programs' standard
input, standard output and standard error file handles, respectively.
[...]
With None, no redirection will occur; the child's file handles will be
inherited from the parent.

所以你可能想尝试一下这方面的事情。顺便说一句。阻止直到完成。所以你可能不需要sleep()(这里是来自subprocess.Popen的wait()可能是你想要的吗?)。

import subprocess

ret_code = subprocess.call(["echo", "Hello World!"], stdout=subprocess.PIPE);