0

次の行に沿って何かをすることは可能ですか:

Usage: 
  program submit [options]

Options:
  --user <email>            Users email address
  --documents <document>...  Documents to submit (can enter multiple)

submit --user Austin --documents doc1.txt --documents doc2.txt 

これにより、次の JSON が提供されます。

{
  submit: True,
  --user: "Austin",
  --documents: ["doc1.txt", "doc2.txt"]
}

オプションの引数を繰り返すことが可能であることは承知しています。実行する必要があるのではなく、オプションの説明内で指定することを本当に好みます。

Usage:
  program submit [--user <email>] [--documents <document>]...

可能であれば、これを達成する方法を誰かに教えてもらえますか?

4

1 に答える 1

0

これは一種のハックですが、うまくいくはずです:

"""
Usage:
  program submit [options]

Options:
  --user <email>            Users email address
  --documents <document>...  Documents to submit (can enter multiple)

submit --user Austin --documents doc1.txt --documents doc2.txt
"""

from docopt import docopt

if __name__ == '__main__':
    arguments = docopt(__doc__.replace('[options]',
                       '[options] [--documents <document>]...'))
    print(arguments)
于 2015-01-16T11:13:21.650 に答える