1. ホーム
  2. python

[解決済み] 他のPythonスクリプトから引数を渡してPythonスクリプトを実行する [duplicate]

2022-03-27 10:48:46

質問

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

例えば、最初のスクリプトを実行して、値のリスト (0,1,2,3) を反復処理し、それらを2番目のスクリプトに渡します。 script2.py 0 次に script2.py 1 など。

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

execfile("script2.py 1")

しかし、変数をうまく受け入れてくれません。をプリントアウトすると sys.argv script2.py では、最初のスクリプト "['C:\script1.py'] に対するオリジナルのコマンド呼び出しになっています。

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

何か方法があるはずだと思うのですが、どうすればいいのかわかりません。

どのように解決するのですか?

を使ってみてください。 os.system :

os.system("script2.py 1")

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