Форум сайта python.su
Приветствую, Товарищи!
Никак не могу решить одну, казалось бы, простую проблему.
Суть следующая:
Существует код на python с использованием argparse, в котором все значения после определенного аргумента командной строки попадают в список, реализовано это так -
parser.add_argument('-p', type=int, nargs='+') args = parser.parse_args()
Отредактировано Cimaw (Май 20, 2017 15:13:38)
Офлайн
#!/usr/bin/env python3 from optparse import OptionParser def f(option, opt, value, parser): for arg in parser.rargs: if arg.startswith(('-', '--')): break parser.values.a.append(int(arg)) parser = OptionParser() # Можно так сделать # (если известно количество позиционных аргументов после опции) # parser.add_option("-a", action='append', type=int, nargs=3) parser.set_defaults(a=[]) parser.add_option("-a", action='callback', callback=f) parser.add_option("-b", action='store_true') opts, args = parser.parse_args(['-a', '1', '2', '3', '-b', '-a', '4', '5', '6']) print('opts:', opts) print('args:', args) print('a:', opts.a) print('b:', opts.b)
[guest@localhost py]$ ./opts.py
opts: {'b': True, 'a': [1, 2, 3, 4, 5, 6]}
args: ['1', '2', '3', '4', '5', '6']
a: [1, 2, 3, 4, 5, 6]
b: True
[guest@localhost py]$
Отредактировано py.user.next (Май 21, 2017 01:17:20)
Офлайн
Отказались от обоих в своей рабочей группе.
Используем Арминовский click
Отредактировано 4kpt_V (Май 21, 2017 02:03:22)
Офлайн