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
キーワード引数 toadd_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を考慮する必要があるかどうかについても考えてください...