获取线程的命令行输出



我有一个主scirpt,它以某种顺序运行其他几个程序(以避免手动启动它们(。所以我用线程来调用它们。第一个是Windows应用程序,我这样称呼它:

class NepThread(threading.Thread):
def run(self):
subprocess.call('PATH_TO_PRGM.exe')
pass
#...
nepThread = NepThread()
nepThread.daemon = True
nepThread.start()

然后我以同样的方式运行Python脚本:

class UsbCameraThread(threading.Thread):
def run(self):
subprocess.call(["python", 'PATH\USBcamera.py'])
pass
#...
usbCameraThread = UsbCameraThread()
usbCameraThread.daemon = True
usbCameraThread.start()

但对于这一个,我需要等待它启动后再运行下一个脚本。当USBcamera脚本准备好时,它会在cout上写一些东西,然后开始一个无限循环:

print('Start Video recording!')
while True:

我的问题是:如何获得命令行输出以了解脚本是否已启动?

提前感谢!深色Patate

您可能可以使用subprocess.Popen()指令来捕获stdout流。以下是它的用法示例:

proc = subprocess.Popen( command, stdout = subprocess.PIPE, stderr = subprocess.PIPE )
stdout_stream, stderr_stream = proc.communicate()
stdout_stream = stdout_stream.decode( "ascii" )

然后打印出stdout_stream的内容。

最新更新