私はいくつかの文字列置換を組み込むことに取り組んでおり、現在引数は を使用してスクリプトに渡されますsys.argv[i]
。sys を docopt に置き換えたいのですが、これまでのところドキュメントが比較的不明確であることがわかりました。
私のコードが現在動作する方法は
filename.py -param_to_replace new_param_value
(複数のパラメーターを含めて置き換えることもできます)
これは次にによって処理されます
if len(sys.argv) > 1:
for i in range((len(sys.argv)-1) / 2):
params[sys.argv[1+2*i].split('-')[1]] = float(sys.argv[1+2*i+1])
ここで、params は一連の定義済みパラメーターの名前です。
これをdocoptで動作させることができるはずだと思いますが、これまでのところ、私が持っているものはもっと似ています
"""Docopt test
Usage:
filename.py --param_name1 <val> --param_name2 <val>
filename -h | --help
filename --version
Options:
-h --help Show this screen.
--param_name1 Change some param we call param_name1, all other params changed in similar way
"""
from docopt import docopt
if __name__ == '__main__':
arguments = docopt(__doc__, version='filename 1.0')
print(arguments)
しかし、これは何も渡さず、公式ドキュメントで提供されている詳細の終わりのようです。docopt に詳しい人は、コマンドライン引数をより効果的に渡す方法を知っていますか? または、この後に sys.argv を「arguments」に置き換える必要がありますか?
ありがとう!