Halten Sie einen Teilprozess und lebendig zu halten, die ihm Befehle? Python
Wenn ich spawn eine neue subprocess
in python mit einem bestimmten Befehl (sagen wir mal ich starte den python-interpreter mit python
Befehl), wie kann ich neue Daten senden, um den Prozess (via STDIN)?
- wenn es eine shell, die Sie automatisieren möchten die Wechselwirkungen mit
pexpect
ist ideal für diese Art der Sache.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die standard - Teilprozess Modul. Sie verwenden Teilprozess.Popen (), um den Vorgang zu starten, und es wird im hintergrund ausgeführt werden (d.h. zur gleichen Zeit wie Sie Ihre Python-Programm). Wenn Sie anrufen, Popen(), werden Sie wahrscheinlich wollen, um die stdin, stdout und stderr Parameter Teilprozess.ROHR. Dann kann man die stdin, stdout und stderr Felder des zurückgegebenen Objekts zum schreiben und Lesen von Daten.
Ungetestet Beispiel-code:
Popen()
oder 'Gabel'?Nicht.
Wenn Sie möchten, um Befehle zu senden, um einen Teilprozess erstellen Sie einen pty-und dann Gabel Teilprozess mit einem Ende der pty-an seinem STDIN.
Hier ist ein Ausschnitt aus meinen code:
In diesem code, pty befestigt ist stderr, weil es Fehlermeldungen erhält, anstatt das senden der Befehle, aber das Prinzip ist das gleiche.
Einen tunnel erstellt von Teilprozess zu Feuer-mehrere Befehle können nicht am Leben gehalten werden. für die Erreichung dieses können Sie Einblick in paramiko, für andere Sachen wie Unterprozess stdin, stdout, stderr gehen Sie durch diesen link python-subprocess, da dies Ihr erstes python-Projekt ist es besser, Sie Lesen und ausprobieren von Sachen.