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='<Required> Set flag',required=True)
parser.add_argument('-bg','--base_g',action='store',dest='base_g',help='<Required> Base g',required=True)
results = parser.parse_args() # collect cmd line args
set = results.set
base_g = results.base_g
if __name__ == '__main__':
main()
type=
および choices=
引数 add_argument
を使用できます。 '0'
と'1'
のみを受け入れるには、次のようにします。
parser.add_argument(…, choices={"0", "1"})
そして、整数のみを受け入れるには、次のようにします。
parser.add_argument(…, type=int)
choices
では、type
引数として指定したタイプのオプションを指定する必要があることに注意してください。したがって、整数およびをチェックするには、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)