2017-06-07 21 views
1

これらの引数の数を知らなくても、複数の引数を持つ複数のオプションをdocoptに含めることは可能ですか?複数の引数を持つオプション

私は、引数の数が可変で、このような何かをしたいと思います:

Usage: 
    myprog.py --option1 ARG1 ARG2... --option2 ARG3 ARG4 ARG5... 

私は<arg>...を使用しようとしましたが、それは唯一の位置引数として動作します。

ありがとうございました。

答えて

1

オプションを複数回指定できますが、毎回そのオプションを指定する必要があります。例えば、それは次のようになります。

"""Example of program with options repeated using docopt. 
Usage: 
    myprog.py [--options1=OPT]... 
""" 
from docopt import docopt 

if __name__ == '__main__': 
    arguments = docopt(__doc__) 
    print(arguments) 

、出力は次のようになります。

$ python myprog.py --options1=test1 --options1=test2 
{'--options1': ['test1', 'test2']} 
+0

は、あなたがそれを行うことができた情報に感謝を知りませんでした!しかし、私はユーザーにファイルのリストを与えるように頼んでいます。オプションを繰り返すと時間がかかります。私は[別のトピック](https://stackoverflow.com/questions/21804165/docopt)で見つけた解決策を使用すると思います。 -options-after-repeating-elements-interpeted-as-repeating-elements?rq = 1)を引数として '、'で区切って指定します。私はそれが最良の選択肢であるかどうかはわかりませんが、他の方法があると思いますか? – Liad

+1

カンマをセパレータとして使用するソリューションは非常に一般的です。だから私はそれを使用することについてあまり心配しないだろう。オプション自体にコンマが含まれていると、エスケープする方法が必要になることがあります。例えば、ファイルシステムのファイル名にカンマを含めることができます。 –

関連する問題