читать вывод терминала Linux, используя модуль подпроцесса Python - PullRequest
0 голосов
/ 02 февраля 2020

Я использую python на терминале Linux, и для запуска во время теста требуются некоторые команды bash. Итак, я использую модуль подпроцесса и запускаю свои тестовые команды (скрипт bash). Эти так называемые команды bash могут напечатать что-то на CLI, что мне нужно знать, если это происходит, когда я параллельно выполняю свой код python.

для примера:

# running my python TCP server 

subprocess.call(['.\run_some_shell_commands.sh'],shell=True)

while True:
   # I am doing some other python stuff 

   if (CLI_HAS_SOME_OUTPUT_DETECTED):
       #record the output to some variable 


   # doing some more python stuff 


Если я точно знаю, что run_some_shell_commands. sh вернет некоторый вывод, я мог бы просто использовать A = subprocess.checkoutput (['. \ run_some_shell_commands. sh'], shell = True) , который сохранит свой вывод в переменной A ..

Есть ли Любой способ получить последние n строк терминала ?? , чтобы я мог проверить, произошло ли это событие, и я могу присвоить это CLI_HAS_SOME_OUTPUT_DETECTED

Любые предложения очень ценятся.

Сайра

Ответы [ 2 ]

1 голос
/ 03 февраля 2020
import subprocess
import time as t
cmd = [' ']
P = subprocess.check_output(cmd,shell=True)
while True :
        print(P)
        t.sleep(0.1)
0 голосов
/ 02 февраля 2020

Ответ дан в Выполнение команды оболочки и захват вывода . Существует два класса команд оболочки: исполняемые файлы и встроенные команды , в некоторых языках программирования это может иметь значение, см. Как прослушать ответ от команды оболочки в android студия?

...