Ограничение ценностей параметров командной строки

Как я ограничиваю ценности argparse вариантов?

В ниже кода sau выбор должен только признать, что много 0 или 1 и bg должны только позволить целое число. Как я могу осуществить это?

import os
import sys, getopt
import argparse

def main ():
    parser = argparse.ArgumentParser(description='Test script')
    parser.add_argument('-sau','--set',action='store',dest='set',help=' Set flag',required=True)
    parser.add_argument('-bg','--base_g',action='store',dest='base_g',help=' Base g',required=True)
    results = parser.parse_args() # collect cmd line args
    set = results.set
    base_g = results.base_g

if __name__ == '__main__':
    main()
20
nl ja de
проверьте эту обучающую программу docs.python.org/howto/argparse
добавлено автор Tshepang, источник
don' t маскируют встроенное: установил = results.set (вы видите, что подсветка синтаксиса окрашивает),
добавлено автор eumiro, источник
Кроме того, на заметке на полях, если аргументы требуются, они shouldn' t быть флагами, но позиционными параметрами.
добавлено автор Jonas Wielicki, источник

1 ответы

Можно использовать напечатать и выбор arguments of add_argument. To accept only '0' и '1', you'd do:

parser.add_argument(…, choices={"0", "1"})

И принять только целые числа, вы сделали бы:

parser.add_argument(…, type=int)

Обратите внимание, что в выборе, необходимо будет дать варианты в типе, который вы определили как аргумент типа. Таким образом, чтобы проверить на целые числа и позволяют только 0 и 1, вы сделали бы:

parser.add_argument(…, type=int, choices={0, 1})

Пример:

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> _ = parser.add_argument("-p", type=int, choices={0, 1})
>>> parser.parse_args(["-p", "0"])
Namespace(p=0)
22
добавлено
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community