Top

Pexpect

Ein Modul zum interagieren mit Programmen und reagieren auf Ausgabemuster.

$ pip install pexpect

Mit run kann man ein Programm ausführen, ein Ersatz für os.system().

child = pexpect.run('ls -al')
print(child)

Mit spawn ist eine Interaktion mit dem Programm möglich.

child = pexpect.spawn('ssh -l pi 192.168.1.131', encoding='utf-8')
child.expect('password:')
child.sendline('raspberry')

Mit der Methode interact bekommt der User die Kontrolle.

child.interact()

Die pxssh Klasse erweitert pexpect.spawn.

from pexpect import pxssh

def connect(host, user, password):
    try:
        s = pxssh.pxssh()
        s.login(host, user, password)
        return s
    except:
        print('[-] Error Connecting')
        exit(0)

def send_command(s, cmd):
    s.sendline(cmd)
    s.prompt()
    print(s.before)

s = connect('192.168.0.8', 'pi', 'raspberry')
send_command(s, 'ls -l')