use*_*146 31 python command-line-arguments argparse
如何限制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()
Run Code Online (Sandbox Code Playgroud)
Jon*_*fer 38
您可以使用的类型和选择参数add_argument.要仅接受'0'和'1',您需要:
parser.add_argument(…, choices={"0", "1"})
Run Code Online (Sandbox Code Playgroud)
并且只接受整数,你会这样做:
parser.add_argument(…, type=int)
Run Code Online (Sandbox Code Playgroud)
请注意,在选择中,您必须以您指定的类型为type-argument提供选项.因此,要检查整数并仅允许0和1,您需要:
parser.add_argument(…, type=int, choices={0, 1})
Run Code Online (Sandbox Code Playgroud)
例:
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> _ = parser.add_argument("-p", type=int, choices={0, 1})
>>> parser.parse_args(["-p", "0"])
Namespace(p=0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7684 次 |
| 最近记录: |