6

2 つの Python スクリプトがあります。最初のスクリプトは、サードパーティの Python スクリプトを実行する必要がある 2 番目のスクリプトのテーブルを呼び出します。次のようになります。

# the call from the first script. 
cmd = "qsub -sync y -b -cwd -V -q long  -t 1-10 -tc 5 -N 'script_two' ./script2.py"

script2thread = pexpect.spawn(cmd)

# end of script 1 

ここでは、10 個のジョブをキューに送信しています。スクリプト 2 には、task_id に基づく case ステートメントがあります。それぞれで、異なるパラメーターを使用してサードパーティのスクリプトに同様の呼び出しを行います。

...
elif(task_id == 4)
subprocess.call(./script3)

# or 

os.system(./script3 , shell=True)

ここに私の疑問があります。どちらかを使用することに違いや利点はありますか? Windows では、サポートの問題により、一方を他方に使用すると大きな違いが生じることはわかっていますが、私は Linux を使用しており、これを Windows で実行するつもりはありません。サブプロセスを使用すると、非常に奇妙な結果が得られることがあります。3 番目のスクリプトを一度に 1 つずつ個別に実行すると、ネットワーク上で他のものを見つけることができません。

4

1 に答える 1

15

を使用する必要がありますsubprocess。違いが生じるわけではありません。交換することを意図した新しいモジュールですos.system(ドロップイン交換については、このセクションを参照してください)。また、いつか必要になった場合に備えて、より多くの機能を備えています。

要するに、使用する理由はありませんos.system(古いバージョンの Python との互換性を除いて)。

于 2013-06-13T18:32:19.747 に答える