прочитать последнюю строку вывода бесконечного запущенного подпроцесса в python - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь периодически читать самые последние выходные данные subprocess, чтобы затем обрабатывать их в другом месте. Я не настолько опытен в subprocess, может быть, у вас есть несколько лучших практик для меня? Шаги:

  • Запустите процесс: этот процесс должен выполняться в фоновом режиме, поэтому я не увижу весь его вывод на терминале python (боюсь, что-то сломается sh из-за большого количества данных в любых переменных скрипта python). Процесс будет выдавать данные каждую секунду (строка длиной около 30 символов).
  • Чтение последних данных: В бесконечном while-l oop сценария python мне нравится получать последнюю строку subprocess каждые 3 секунды.
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...