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
stdin/stdout eines anderen Programmes steuern?
Subprocess kann das =D
Oder pexpect. Aber ich würde die Nutzung eines richtigen Moduls empfehlen, das ist eigentlich immer einfacher zur programmieren.
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-
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-
Warum nennst du dann ftp als Beispiel? Um potentiellen Helfern die Arbeit möglichst zu erschweren?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.
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.
pexpect hilft dabei, Programme zu kontrollieren, die Eingaben direkt vom TTY lesen, so wie die Passwortabfrage bei SSH.subprocess geht mit einfachen Beispielen, aber leider kann es nicht in die ssh-Passwort-Abfrage schreiben. Könnte aber auch an ssh liegen.