1

私のPythonスクリプトでは、forループ内で実行可能ファイルを呼び出し、その実行可能ファイルが結果を「output.xml」に書き込むのを待つ必要があります。

wait()を使用するにはどうすればよいですか?また、実行可能ファイルの1つが結果の生成を終了して結果を取得したことを知るにはどうすればよいですか?そのプロセスを閉じて新しいプロセスを開き、実行可能ファイルを再度呼び出して新しい結果を待つにはどうすればよいですか?

    import subprocess
    args = ("bin/bar")
    popen = subprocess.Popen(args)

「bin/bar」からの出力が「output.xml」を生成するのを待ち、そこからその内容を読み取る必要があります。

    for index, result in enumerate(results):
        myModule.callSubProcess(index)
        #this is where the problem is.
        fileOutput = open("output.xml")
        parseAndStoreInSQLiteFileOutput(index, file)
4

2 に答える 2

1

Popen.wait()プロセスが終了するまでスクリプトを待機させます。プロセスはすでに終了しているため、後でプロセスを強制終了する必要はありません。

于 2010-03-20T17:43:07.277 に答える
1

私はそれを行う最も簡単な方法は使用することだと思いますcall

import subprocess
retcode = subprocess.call('command', shell=True)

プロセスが終了するのを待ち、戻りコードを変数に割り当てます。詳細な説明については、Pythonドキュメントの17.1.subprocess-便利な関数を参照してください。それが役に立てば幸い。

于 2010-03-24T19:16:38.680 に答える