2017-01-31 3 views
2

Ziel ist es, das Python-Terminal mit der Vorausführung einiger Befehle zu öffnen. Im wirklichen Leben ist es einige Variablen einige Module und definiert Laden, aber hier ist eine vereinfachte Version:Senden von Befehlen an das geöffnete Python-Terminal

from subprocess import Popen, CREATE_NEW_CONSOLE 

r=Popen("python",creationflags=CREATE_NEW_CONSOLE) 
r.communicate(input=b"print(2+2)") 

CREATE_NEW_CONSOLE verwendet wird, da sonst Terminal-Fenster nicht (ich den Code von IDE ausgeführt) erscheint. Der obige Code öffnet ein Python-Terminal-Fenster, aber Eingabe kommt nicht dorthin. Der Versuch, einige Variationen stoppt Fenster erscheinen, wie:

r=Popen(["python","print(2+2)"],creationflags=CREATE_NEW_CONSOLE) 

Oder

r=Popen("python",creationflags=CREATE_NEW_CONSOLE, stdin=PIPE) 
r.communicate(input=b"print(2+2)") 

Was kann man also das Problem zu lösen getan werden?

+0

Nun wäre die Verwendung, das zweite und dritte Beispiel öffnen und schließen sehr schnell. Versuchen Sie, etwas zu stdin zu pipen, aber auch angehängt haben stdin an das Terminal angeschlossen? –

+0

Wenn ich Ihre Frage richtig verstehe, ist die Grundidee, mehrere Befehle an Terminal zu starten, ohne das Fenster zu schließen. All das versuchte das zu erreichen. – Nik

+0

https://stackoverflow.com/questions/30494945/createprocess-with-new-console-window-but-override-some-std-io-handles –

Antwort

Verwandte Themen