2016-09-28 7 views
0

明示的な順序で別のrun.pyによって呼び出される一連のスクリプトがあります。subprocess.callにargを渡す

私は、次のしている run.pyインサイド

:3つのスクリプトの

script1 = str(sys.path[0]) + "\\script1.py" 
subprocess.call(["Python", script1]) 

のように。この形式でスクリプト1に2つの引数を渡したい場合は、実行時にスクリプトで使用される明示的な実行設定などの引数を、どうすればよいでしょうか?私はscript1内のsys.argvに頼る気がしますが、私が渡すインデックスの位置に関係なく、引数が範囲外であるというエラーを受けました。

ありがとうございます!

答えて

3

サブプロセスは引数のリストを受け取り、実行するコマンドに変わります。

ので:subprocess.call

subprocess.call(["Python", script1, 'arg1', 'arg2']) 

そのリストのすべての部分は引数です。あなたはちょうど "Python"とscript1を指定することになりますが、サブプロセスにはどちらも他の引数です。

documentation for subprocessにはさらに詳しい読書があります。

+0

それで 'script1.py'の中で私はこれらの引数をsys.argv [2]とsys.argv [3]として利用しますか? – Alt182

+0

@ Alt182は効果的に 'python \\ script1.py arg1 arg2.'コマンドとして終了します。それに応じてそれを処理する必要があります。 – enderland

関連する問題