コマンドライン引数を実行するファイル 'train.py'があります。いくつかの議論が必要であり、いくつかは任意である。スクリプトからコマンドライン引数をPythonファイルに渡す方法
たとえば、
.\train.py --counter arg1 --opt optional_arg
今、私はこの「train.py」をインポートして、そのスクリプトでargumetsを渡し、スクリプトの中で「train.py」を実行します「script.py」と呼ばれる新しいファイルを書きたいと思います。 py '
私はtrain.pyに毎回異なる引数のセットを与えたいので、これを行う必要があります。
シェルスクリプトを使用してこれを行うことができます。私はpythonスクリプトを使用してそれを行う方法について興味があります。
train.py
import optparse
optparser = optparse.OptionParser()
optparser.add_option(
"--counter", default = "",
help = "Counter value"
)
optparser.add_option(
"--opt", default = "",
help = "Optinal parameter"
)
'''Do Something'''
script.py
args = {
'--counter':''
'--opts':''
}
lst = [ 1, 2, 3]
for counter in lst:
'''set command line arguments here in args dictionary'''
args['--counter'] = counter
'''run train.py with args as input dictionary'''
あなたが求めていることは可能ですが、私はコマンドラインargsとしてPythonコードの異なる部分の間でデータを渡さないことをお勧めします。その代わりに、あるスクリプトの機能を関数またはクラスにラップし、他のスクリプトにインポートします。あなたがスクリプトとしてファイルを使い続けることができるようにしたいなら、 '' if __name__ == "__main __" 'idiom –
***を使うことができます。*** Pythonコードの間でデータを渡すことはお勧めしません。 ***。これの背後にある理由? –
データをコマンドラインargsとして渡すには、そのデータを文字列としてエンコードする必要があります。これは現在のデザインでは問題ないかもしれませんが、データが単純な場合はすぐに面倒になることがあります。最終的には、データを直接文字列に変換して元の型に戻すのは、それを直接渡すオプションがある場合は、少し無意味(非効率的)です。 –