0

配列を渡しながら同時に実行する5つの他のpythonスクリプトを呼び出すpythonスクリプトを作成しようとしています.5つのスクリプトのそれぞれがその配列に対して操作を実行し、最初のスクリプトに別の配列を返します。

最初のスクリプトは、5 つの配列がいつ値を返したかを認識し、これらの 5 つの配列に対して操作を実行します。

のような解決策だと思いますが os.system(./script1.py arg1)os.system(./script2.py arg2) どうすればよいかわかりません。

4

1 に答える 1

0

スレッド プールを使用して、すべてのコマンドを並行して実行できます。また、subprocessプログラムの出力を取得するモジュールに切り替えました。

import multiprocessing.pool
import subprocess as subp

def worker(script):
    proc = subp.Popen(script, shell=True, stdout=subp.PIPE, stderr=subp.PIPE)
    out, err = proc.communicate()
    return script, out, err, proc.returncode

scripts = ['./script1.py arg1', './script2.py arg2']
pool = multiprocessing.pool.ThreadPool(len(scripts))
for script, out, err, returncode in pool.map(worker, scripts):
    do your magic
pool.close()
pool.join()
于 2017-01-07T18:16:11.790 に答える