Как использовать 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)