docopt не применяет значение по умолчанию - PullRequest
0 голосов
/ 16 июня 2020

У меня есть следующая строка использования:

    usage = """Usage: 
    counts_editing_precent_total_editing_to_csv.py out <output> files <pileupPercentFiles>... [--percentageField=<kn>] [--numReadsField=<kn>]
    counts_editing_precent_total_editing_to_csv.py -h | --help

Options:
     -h --help  show this screen.
     --percentageField=<kn>  the column of the percent field in the input file  [default: 7] .
     --numReadsField=<kn>  the column of the num of reads field in the input file  [default: 4] .

    """

, а затем я выполняю этот код

    args = docopt(usage)
    print(args)

Я запускаю следующую команду:

python <filename>.py out a files a b c

The вывод:

{'--help': False,
 '--numReadsField': None,
 '--percentageField': None,
 '-h': False,
 '<output>': 'a',
 '<pileupPercentFiles>': ['a', 'b', 'c'],
 'files': True,
 'out': True}

Как видите, значения по умолчанию не используются. Я встречал и другие подобные вопросы, где решение было «Делайте два пробела между командой и ее описанием», и я убедился, что да. Я действительно не могу отличить мой пример от того, который представлен в документах .

1 Ответ

1 голос
/ 16 июня 2020

Я запустил и работает. Напомним, что вы должны поместить строку использования перед from docopt import docopt в верхней части файла. Вот сценарий для его воспроизведения.

"""Usage:
    counts_editing_precent_total_editing_to_csv.py out <output> files <pileupPercentFiles>... [--percentageField=<kn>] [--numReadsField=<kn>]
    counts_editing_precent_total_editing_to_csv.py -h | --help

Options:
     -h --help  show this screen.
     --percentageField=<kn>  the column of the percent field in the input file  [default: 7] .
     --numReadsField=<kn>  the column of the num of reads field in the input file  [default: 4] .

"""
from docopt import docopt
ARGUMENTS = docopt(__doc__)
print(ARGUMENTS)    

...