pExpect очистить входной буфер и получить последний результат - PullRequest
0 голосов
/ 19 сентября 2019

Я использую Pexpect для получения данных от процесса, который всегда выполняется и генерирует непрерывные выходные данные.Я хочу читать последний вывод каждые 1 мин.Однако мне не удалось получить вывод в реальном времени с отметкой 1 мин, вместо этого я получаю старые данные (1 мин назад) в буфере.

Как мне отбросить предыдущие выходные данные в буфере и получить только текущий.

Я пытался использовать child.read_nonblocking (1000000000, timeout = 1) перед чтением данных, но этовсе еще дает мне старый вывод.

child = pexpect.spawn("tos-ssh")
child.expect("~ root#")
raw_output = child.before
print (raw_output)

#The process will continuiously printing out data
child.sendline("start polling data")

#Wait for 60 secs and Clear the input buffer
time.sleep(60)
child.read_nonblocking(1000000000, timeout = 10)

#Read the latest Data
child.expect("xy=")
raw_output = child.before
print (raw_output)

он все еще не дает мне текущий вывод.

...