0

によって処理される、位置引数のみを持つ非常に単純な python スクリプトを試していdocoptます。

#!/usr/bin/env python

opt_spec = """Test

Usage: docopt_test (import | export <output_file> <output_format>)
       docopt_test (-h | --help)
       docopt_test (-v | --version)

Options:
  -h --help     Show this screen.
  -v --version     Show version.

"""

from docopt import docopt

if __name__ == '__main__':
    arguments = docopt(opt_spec, version='Test 1.0')
    print(arguments)

実行すると、次のように出力されます。

./docopt_test.py export file.xml xml
{'--help': False,
 '--version': False,
 '<output_file>': 'file.xml',
 '<output_format>': 'xml',
 'export': True,
 'import': False}

問題は、output_fileandoutput_format引数が名前に<and>区切り文字を保持し、呼び出しがargs['output_file']不可能になることです。使用文字列から区切り文字を削除すると、セマンティクスが変更され、オプションがキーワードになります。

のような使い方に頼らずにこれを解決する方法はありargs['<output_file>']ますか?

4

1 に答える 1