我有一个主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
的内容。