stdin/stdout eines anderen Programmes steuern?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
el_bobo
User
Beiträge: 23
Registriert: Dienstag 15. Januar 2008, 02:11

Freitag 4. Juli 2008, 21:49

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
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Freitag 4. Juli 2008, 21:57

Subprocess kann das =D
lunar

Freitag 4. Juli 2008, 22:35

Oder pexpect. Aber ich würde die Nutzung eines richtigen Moduls empfehlen, das ist eigentlich immer einfacher zur programmieren.
el_bobo
User
Beiträge: 23
Registriert: Dienstag 15. Januar 2008, 02:11

Samstag 5. Juli 2008, 02:12

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-
lunar

Samstag 5. Juli 2008, 08:46

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.
Antworten