によって処理される、位置引数のみを持つ非常に単純な 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_file
andoutput_format
引数が名前に<
and>
区切り文字を保持し、呼び出しがargs['output_file']
不可能になることです。使用文字列から区切り文字を削除すると、セマンティクスが変更され、オプションがキーワードになります。
のような使い方に頼らずにこれを解決する方法はありargs['<output_file>']
ますか?