2
目標はいくつかのコマンドの事前実行でpython端末を開くことです。実生活では、いくつかのモジュールをロードすると、いくつかの変数が定義されていますが、ここでは単純化したバージョンです:開いているpython端末にコマンドを送る
from subprocess import Popen, CREATE_NEW_CONSOLE
r=Popen("python",creationflags=CREATE_NEW_CONSOLE)
r.communicate(input=b"print(2+2)")
そうでない場合は、ターミナルウィンドウが表示されないので、CREATE_NEW_CONSOLEは(私はIDEからコードを実行する)、使用されています。上記のコードはPythonのターミナルウィンドウを開きますが、入力はそこにはありません。問題を解決するために何ができるかそう
r=Popen(["python","print(2+2)"],creationflags=CREATE_NEW_CONSOLE)
それとも
r=Popen("python",creationflags=CREATE_NEW_CONSOLE, stdin=PIPE)
r.communicate(input=b"print(2+2)")
:いくつかのバリエーションをしようとすると同様に、表示されてからウィンドウを停止しますか?
を使用することです第2および第3の例は非常に迅速に開閉する。あなたは何かをstdinにパイプしようとしているが、接続されているstdinは、端末に接続されていますか? –
私はあなたの質問を正しく理解している場合、主な考え方は、ウィンドウを閉じずにターミナルに複数のコマンドをリモートで起動することです。上記のすべてがそれを達成しようとしました。 – Nik
https://stackoverflow.com/questions/30494945/createprocess-with-new-console-window-but-override-some-std-io-handles –