使用 argparse

例一 位置参数

#!/usr/bin/env python3 

import  argparse
parser = argparse.ArgumentParser()  #生成一个解析器
parser.add_argument("pos",      #没有-开始的是“位置参数”
            help="输入浮点数",   #对这个参数的提示信息
            type=float)         #这个参数会解析为float 
      #Common built-in types and functions can be used directly as the value of the type argument type=len
args = parser.parse_args()      #解析参数
print(args.pos)

例二 action

>>> parser.add_argument('--foo', action='store_const', const=42) # 设置foo为常量42
>>> parser.add_argument('--foo', action='store_true',default=false) # 设置bar为true,默认为false
>>> parser.add_argument('--bar', action='store_false') # 设置bar为false
>>> parser.add_argument('--foo', action='append') #arg.py --foo 1 --foo 2 foo为[1,2]

例三 nargs

parser.add_argument('--foo', nargs=2)   #arg.py --foo 1 2 foo为['1', '2']
parser.add_argument('foo', nargs=2)    #arg.py  1 2  foo为['1', '2']
parser.add_argument('foo', nargs='?')    #arg.py  1 2  foo为['1', '2'] 如果没有参数,结果是None,多于1个提示错误
parser.add_argument('foo', nargs='+')    #arg.py  1 2  foo为['1', '2']  如果没有参数,提示错误
parser.add_argument('foo', nargs='*')    #arg.py  1 2  foo为['1', '2']   如果没有参数,结果是[ ]
parser.add_argument('foo', nargs=argparse.REMAINDER)    #arg.py  1 2  foo为['1', '2']   把剩余的放到foo列表里

nargs 的值可以为:

  • N (an integer). N arguments from the command line will be gathered together into a list.
  • '?'. One argument will be consumed from the command line if possible, and produced as a single item.
  • '*'. All command-line arguments present are gathered into a list.
  • '+'. Just like '*', all command-line args present are gathered into a list.
  • argparse.REMAINDER. All the remaining command-line arguments are gathered into a list.

例四 choices

>>> parser.add_argument('door', type=int, choices=range(1, 4))  #door只能是123

你可能感兴趣的:(使用 argparse)