Seite 1 von 1
stdin/stdout eines anderen Programmes steuern?
Verfasst: Freitag 4. Juli 2008, 21:49
von el_bobo
Hallo zusammen,
der Titel ist vielleicht etwas schlecht formuliert, aber meine Frage ist folgende:
Kann man mit Python ein anderes Programm aufrufen (z.B. "ftp") und das dann bedienen wie auf einer Shell? Also irgendwas eingeben, Antwort auslesen, wieder was eingeben...
Google brachte mir nicht viel, weiß nicht direkt wonach ich suchen muss.
Vielen Dank schon mal,
el_bobo
Verfasst: Freitag 4. Juli 2008, 21:57
von BlackVivi
Subprocess kann das =D
Verfasst: Freitag 4. Juli 2008, 22:35
von lunar
Oder pexpect. Aber ich würde die Nutzung eines richtigen Moduls empfehlen, das ist eigentlich immer einfacher zur programmieren.
Verfasst: Samstag 5. Juli 2008, 02:12
von el_bobo
Ein eigenes Modul? Was meinst du?
Es geht eigentlich um ssh, dafür gibt es meines Wissens kein built-in-Modul.
subprocess geht mit einfachen Beispielen, aber leider kann es nicht in die ssh-Passwort-Abfrage schreiben. Könnte aber auch an ssh liegen.
Trotzdem danke für die schnellen Antworten.
Grüße-
Verfasst: Samstag 5. Juli 2008, 08:46
von lunar
el_bobo hat geschrieben:Ein eigenes Modul? Was meinst du?
Es geht eigentlich um ssh, dafür gibt es meines Wissens kein built-in-Modul.
Warum nennst du dann ftp als Beispiel? Um potentiellen Helfern die Arbeit möglichst zu erschweren?
Für FTP gibt es so viele Module, dass die Empfehlung, ein Modul zu nutzen, nahe liegt. Mit paramiko gibt es allerdings auch ein Modul für SSH.
So sieht das dann aus. Das Beispiel nutzt den SSH Agent, für ein Passwort kannst du dieses per getpass abfragen, und anschließend einfach der "connect"-Methode übergeben.
subprocess geht mit einfachen Beispielen, aber leider kann es nicht in die ssh-Passwort-Abfrage schreiben. Könnte aber auch an ssh liegen.
pexpect hilft dabei, Programme zu kontrollieren, die Eingaben direkt vom TTY lesen, so wie die Passwortabfrage bei SSH.