我对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完成。
有什么想法吗?
答案 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);