Seite 1 von 1

Verhalten von before in pexpect

Verfasst: Sonntag 22. August 2021, 12:15
von kitebuggy
Hallo

Ich bin Neuling und mit meinem Latein am Ende:

Ich logge mich in meien Raspberry Pi ein und will die Ausgabe des Befehls ls erhalten:
Folgender Code funktioniert jedoch nicht:

Code: Alles auswählen

#!/usr/bin/python3
import pexpect
import sys

print('Starting')
l=pexpect.spawn('ssh pi@192.168.10.36',encoding='utf-8')
#l.logfile=sys.stdout
l.expect('password')
l.sendline('PASS')
l.expect('pi@raspberrypi')
l.sendline('ls /home/pi')
l.expect('pi@raspberrypi')
print("Before: ",l.before)
l.close()
Es wird nicht die Ausgabe des Befehls ls dargesstellt.

Stattdessen:
debian@debian:$ ./pls.py
Starting
Before: : ~

Ich dachte, before gibt den Text zurück, der vor dem expect steht.

Wie kriege ich es hin, dass das entfernte Directory angezeigt wird? Was mache ich falsch?
Vielen Dank für eine Erklärung.

Re: Verhalten von before in pexpect

Verfasst: Sonntag 22. August 2021, 12:38
von sparrow
Anstatt den externen Befehl "ssh" aufzurufen, solltest du dir das Modul "paramiko" anschauen.

Re: Verhalten von before in pexpect

Verfasst: Sonntag 22. August 2021, 12:47
von rogerb
@kitebuggy,

vielleicht ist es einfacher mit der speziellen pxssh class für ssh Kommunikation:
https://pexpect.readthedocs.io/en/stabl ... xssh-class