0

我对 Python 真的很陌生,我对 subprocess 类有点问题。

我正在启动一个外部程序:

      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 完成。

有任何想法吗?

4

1 回答 1

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()(这里的wait()from subprocess.Popen 可能是你想要的?)。

import subprocess

ret_code = subprocess.call(["echo", "Hello World!"], stdout=subprocess.PIPE);
于 2015-03-08T14:19:44.723 回答