1

バージョン 2.7 と 3.2 の両方で、Python IDLE で subprocess .Popen を使用しようとしましたが、コードが機能しませんでした!!!

Python コード

ありがとうございました。

4

1 に答える 1

2

stdoutウィンドウで ing が発生するように IDLE が Python をリダイレクトすると思わprintれますが、ファイル記述子 1 をリダイレクトしないため、サブプロセスはそのファイル記述子に問題なく出力されます。

コマンド ラインから IDLE を開始し、これらの行を実行して、IDLE が呼び出された端末に出力が表示されるかどうかを確認してください。

ソリューション:

  1. IDLE を使用しないでください。pythonコマンドラインから呼び出されたインタープリターから自分のものを呼び出します。
  2. プロセスの出力をパイプにリダイレクトし、このパイプを読み取って出力します。そのような:

    sp = subprocess.Popen(['ls'], stdout=subprocess.PIPE)
    for i in sp.stdout: print i
    sp.wait()
    
于 2013-08-09T08:34:51.943 に答える