Python, как читать вывод из дочернего элемента pexpect?

child = pexpect.spawn ('/bin/bash') child.sendline('ls') print(child.readline()) print child.before, child.after 

Все, что я получаю с этим кодом в моем выпуске, – это

 ls ls 

Но когда мой код

 child = pexpect.spawn('ls') print(child.readline()) print child.before, child.after 

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

5 Solutions collect form web for “Python, как читать вывод из дочернего элемента pexpect?”

В pexpect атрибуты до и после заполняются после метода ожидания. Наиболее распространенная вещь, используемая в этой ситуации, ждет приглашения (так что вы узнаете, что предыдущая команда завершила выполнение). Итак, в вашем случае код может выглядеть примерно так:

 child = pexpect.spawn ('/bin/bash') child.sendline('ls') #If you are using pxssh you can use this #child.prompt() child.expect("Your bash prompt here") print(child.before) 

Попробуйте следующее:

 import pexpect child = pexpect.spawn('ls') print child.read() # not readline 

read() даст вам весь вывод ls.

 #!/usr/bin/env python import pexpect child = pexpect.spawn("ssh root@172.16.0.120c -p 2222") child.logfile = open("/tmp/mylog", "w") child.expect(".*assword:") child.send("XXXXXXX\r") child.expect(".*\$ ") child.sendline("ls\r") child.expect(".*\$ ") 

перейдите, чтобы открыть свой файл журнала: – перейти к терминалу

 $gedit /tmp/mylog 

Я думаю, что все, что вам нужно, это:

 p = pexpect.spawn('ls') p.expect(pexpect.EOF) print(p.before) 

или

 p = pexpect.spawn('/bin/ls') p.expect(pexpect.EOF) print(p.before) 

или

 p = pexpect.spawn('/bin/bash -c "ls"') p.expect(pexpect.EOF) print(p.before) 

или даже

 print(pexpect.run('ls')) 
 import sys import pexpect child = pexpect.spawn('ls') child.logfile = sys.stdout child.expect(pexpect.EOF) 

См. Руководство по объекту.

  • Несколько входов и выходов в подпроцессе python
  • pxssh бросает конец файла (EOF). Исключение исключения в стиле исключения
  • Пиктограммы python pexpect sendcontrol
  • Pexpect и PyCharm - Несоответствующий ioctl для устройства
  • ImportError: нет модуля с именем pexpect
  • Pexpect, запуск ssh-copy-id висит при попытке вызвать второй процесс
  • EOF при использовании pexpect и pxssh
  • Есть ли реализация «ожидать» или ожидающая библиотека, которая работает в python3?
  • Python - лучший язык программирования в мире.