2016-09-07 22 views
1

新しいコンソールでpythonサブプロセスを実行したい。いったん開始されると、ユーザーはこの新しいプロセスによって標準に求められる質問に答えることができます。 Subprocess.Popen stdin in new console

は、私は、次のコードを試してみました:

p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=cwd, creationflags=subprocess.CREATE_NEW_CONSOLE) 
(o, e) = p.communicate() 

とすぐにサブプロセスが表示され、次のエラーメッセージを標準入力上の入力を要求するよう:それはこれを達成するための良い方法

EOFError: EOF when reading a line

ですか?

+0

答えてください。いくつかの人々のために便利かもしれません:) – kjaquier

+0

はい、それは動作します。私はそのコメントを答えに移しました。 – Bertrand

答えて

1

私は標準出力/標準エラー出力のリダイレクトで本当に興味がないとして、私はこの方法を試してみました:

subprocess.Popen(cmd, cwd=cwd, creationflags=subprocess.CREATE_NEW_CONSOLE)

それは今、正常に動作します。標準の入出力をリダイレクトしたり、新しいコンソールを作成するのには互換性がないと思います。