2013-04-08 2 views
1

В Python, используя argparse, есть ли способ напрямую указать, в каком порядке аргументы будут отображаться на экране при вызове сценария с -h?Python: порядок отображения входных аргументов с argparse

В частности, я хотел бы показать ряд аргументов после некоторые другие.

ответ

1

Я считаю, что заказ - это порядок, в котором вы add_argument (для каждой группы), так как внутри они хранятся в списке.

например:

import argparse 

args = ('foo','bar','baz','qux') 

#This is not the order the get printed in, so it's not using a dict... 
print (set(args)) 

parser = argparse.ArgumentParser() 
for x in args: 
    parser.add_argument('--{0}'.format(x),help=x) 

parser.parse_args(['-h']) 

результаты в:

set(['baz', 'foo', 'bar', 'qux']) 
usage: test.py [-h] [--foo FOO] [--bar BAR] [--baz BAZ] [--qux QUX] 

optional arguments: 
    -h, --help show this help message and exit 
    --foo FOO foo 
    --bar BAR bar 
    --baz BAZ baz 
    --qux QUX qux 

Конечно, различные реализации питон можете повторно реализовать argparse, как они считают нужным, но так как это чисто питон, я не» не вижу причин для их повторного создания колеса.

+0

Правда. Я быстро предположил, что аргументы отсортированы в алфавитном порядке, но, как вы сказали, они фактически отображаются в том порядке, в котором они отображаются в коде. –

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