引数を渡して別の Python スクリプトから Python スクリプトを実行する [重複] 質問する

引数を渡して別の Python スクリプトから Python スクリプトを実行する [重複] 質問する

Python スクリプトを別の Python スクリプトから実行したいです。コマンド ラインを使用する場合と同じように変数を渡したいです。

たとえば、値のリスト (0、1、2、3) を反復処理する最初のスクリプトを実行し、それらを 2 番目のスクリプトに渡しscript2.py 0ますscript2.py 1

私は見つけたスタックオーバーフローの質問 1186789これは似たような質問ですが、ars の回答は関数を呼び出しますが、私は関数だけでなくスクリプト全体を実行したいのですが、balpha の回答はスクリプトを呼び出しますが引数はありません。テストとして、これを以下のように変更しました。

execfile("script2.py 1")

しかし、変数が正しく受け入れられません。script2.py で出力する場合、sys.argv最初のスクリプト "['C:\script1.py']" への元のコマンド呼び出しになります。

元のスクリプト (この例では script2.py) は私が所有していないため、変更したくありません。

これを行う方法があるはずだと私は思いますが、どのように行うのかわかりません。

ベストアンサー1

使ってみるos.system:

os.system("script2.py 1")

execfile現在の実行コンテキストで Python ステートメントのシーケンスを実行するように設計されているので異なります。そのため、sys.argv変更されませんでした。

おすすめ記事