Я пробую очень простой скрипт python с только позиционными аргументами, обработанный docopt
.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
и output_format
аргументы сохраняют <
и >
разделители в имени, совершать звонки, как args['output_file']
невозможно. Удаление разделителей из строки использования изменяет семантику, делая параметры в ключевых словах.
Есть ли способ решить эту проблему, не прибегая к использованию, например, args['<output_file>']
?