В argparse вы можете определить необязательный позиционный целочисленный аргумент. Отрицательные значения будут выглядеть для пользователя, как если бы вы предоставили опцию:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('limit', type=int, nargs='?')
args = parser.parse_args()
if args.limit is not None:
print "Limiting to %d." % -args.limit
Текст справки по умолчанию в этом случае недопустим, но его можно изменить с помощью аргумента ключевого слова metavar
на add_argument
, например, используя. "-n"
.
Я могу придумать только неприятный способ сделать это с помощью optparse. В основном, определите индивидуальную опцию для каждой цифры, с которой число может начинаться:
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-1")
parser.add_option("-2")
options,args = parser.parse_args()
if options.__dict__["1"] is not None:
print "Your number was %d." % (int("1"+options.__dict__["1"]))
elif options.__dict__["2"] is not None:
print "Your number was %d." % (int("2"+options.__dict__["2"]))
и так далее для всех цифр до 9. Также подумайте, нужно ли считать 0 ...