Как использовать argparse для захвата аргументов командной строки в Python? - PullRequest
2 голосов
/ 10 июня 2011

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

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

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

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

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

1 Ответ

4 голосов
/ 10 июня 2011
>>> 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)
...