2016-03-08 4 views
0

Я в настоящее время используют docopt LIB в первый раз, так что я, безусловно, сделать что-то неправильноПоведение модуля docopt (аргумент парсер)

Мой сценарий:

"""prog 

Usage: 
    prog.py (-h | --help) 
    prog.py (--version) 
    prog.py -s TAG [-t NB_NUC] 

Options: 
    -h, --help help 
    --version version 
    -s TAG  Some TAG I want. 
    -t NB_NUC A number of nuc. 
""" 

Если я пишу: питон прог .py -s SMT

я получаю:

{'--help': False, 
    '--version': False, 
    '-h': False, 
    '-s': True, 
    '-t': True, 
    'NB_NUC': None, 
    'TAG': 'SMT'} 

И это, кажется, correc т, но если я пишу:

python prog.py -s -t 10 -> TAG contain 10 (instead of None) 
python prog.py -t 10 -s SMT -> TAG contain always 10 (instead of SMT) and NB_NUC contain SMT (instead of 10) 
python prog.py -s SMT -t -> TAG contain SMT and NB_NUC contain None (and its what I expected on this way) 

Итак, я попробовал много комбинации, но я не понимаю, как это должно слово ...

То, что я хочу, это TAG всегда содержит значение которые соответствуют аргументу -s, с None или ошибкой, если ничего не дано после -s, и я не понимаю, почему это не так.

Спасибо за вашу помощь!

ответ

0

Вы почти там, просто нужен «< ...>» вокруг аргументов:

"""prog 

Usage: 
    prog.py (-h | --help) 
    prog.py (--version) 
    prog.py -s TAG [-t NB_NUC] 

Options: 
    -h, --help help 
    --version version 
    -s TAG  Some TAG I want. 
    -t NB_NUC A number of nuc. 
""" 
+0

Привет, спасибо за Ваш help.I нашел проблему: это потому, что линии в моей помощи являются табуляция с отступом, а не с отступом в пространстве, и, заменив табуляцию пробелами, теперь он работает нормально. У меня возникла проблема с этим в docopt github. – Liad

+0

Хорошо, не проблема :) –

Смежные вопросы