Как я могу ограничить значение, анализируемое с помощью argparse (например, ограничить целое число положительными значенPython

Программы на Python
Ответить
Anonymous
 Как я могу ограничить значение, анализируемое с помощью argparse (например, ограничить целое число положительными значен

Сообщение Anonymous »

На данный момент у меня есть этот код:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-g", "--games", type=int, default=162,
help="The number of games to simulate")
args = parser.parse_args()

Не имеет смысла задавать отрицательное значение количества игр, но type=int допускает любое целое число. Например, если я запущу python Simulate_many.py -g -2, для args.games будет установлено значение -2, и программа продолжит работу, как будто все в порядке.
Я понимаю, что могу просто явно проверить значение args.games после анализа аргументов. Но могу ли я заставить argparse проверять это условие? Как?
Я бы предпочел, чтобы это работало таким образом, чтобы автоматическое сообщение об использовании могло объяснить требование пользователю. В идеале результат должен выглядеть примерно так:
python simulate_many.py -g -2
usage: simulate_many.py [-h] [-g GAMES] [-d] [-l LEAGUE]
simulate_many.py: error: argument -g/--games: invalid positive int value: '-2'

точно так же, как он сейчас обрабатывает аргументы, которые нельзя преобразовать в целое число:
python simulate_many.py -g a
usage: simulate_many.py [-h] [-g GAMES] [-d] [-l LEAGUE]
simulate_many.py: error: argument -g/--games: invalid int value: 'a'


Подробнее здесь: https://stackoverflow.com/questions/141 ... t-an-integ
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»