Как использовать argparse для захвата аргументов командной строки в Python?

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

python thing.py -s 1 -p 0 1 2 3 -r/-w/-c
  • -s - сохранить следующее целое число

  • -p - хранить следующие целые числа

Последняя часть может быть только одним из трех вариантов (-r, -w или -c), в зависимости от того, что мне нужно сделать.

Я пытался читать учебники, но все они используют те же два примера, которые не объясняют, как хранить целые числа после -option,

1 ответ

Решение
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-s', type=int)
[...]
>>> parser.add_argument('-p', type=int, nargs='*')
[...]
>>> group = parser.add_mutually_exclusive_group(required=True)
>>> group.add_argument('-r', action='store_true')
[...]    
>>> group.add_argument('-w', action='store_true')
[...]    
>>> group.add_argument('-c', action='store_true')
[...]    
>>> parser.parse_args("-s 1 -p 0 1 2 3 -r".split())
Namespace(c=False, p=[0, 1, 2, 3], r=True, s=1, w=False)
Другие вопросы по тегам