读取python中无限运行子流程输出的最新一行

2024-06-01 05:56:34 发布

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

我试图定期读取subprocess的最新输出,然后在其他地方进一步处理。我在{}方面没有那么丰富的经验,也许你有一些最佳的实践经验给我?这些步骤是:

  • 启动进程:这个进程应该在后台运行,因此我不会在python终端上看到它的全部输出(我担心,由于在python脚本的任何变量中保存了大量数据,某些东西会崩溃)。该过程将每秒生成数据(一行约30个字符)
  • 阅读最新数据:在python脚本的无限while循环中,我希望每隔3秒获得subprocess的最新一行
import subprocess
import os
import time

os.chdir('/home/pi/Tutorials/RIOT/examples/gnrc_networking')
cmd = ["sudo", "BOARD=pba-d-01-kw2x", "make", "all", "flash", "term"]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
while True:
    line = p.stdout.readline().rstrip()
    print(line)

Tags: 数据import脚本cmd进程os地方stdout