获取一个线程的命令行输出

2024-10-04 03:28:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个主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:

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

提前谢谢! 暗斑


Tags: pathrunself脚本truedefpasscall
1条回答
网友
1楼 · 发布于 2024-10-04 03:28:01

您可能可以使用subprocess.Popen()指令捕获标准输出流。以下是其用法示例:

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

然后打印出stdout_stream的内容

相关问题 更多 >