import argparse
parse = argparse.ArgumentParser()
parse.add_argument("a", help="params means") # 不可缺省的输入,多个“”则按顺序读取,无需指定a
parse.add_argument("-C", "--gc", default="count") # 带 - 或 -- 的参数可以不输入,其中- 是 --的缩写, 参数在程序中对应的变量名称以--为准,如添加 dest=,则以dest为准,--中的名字就不存在了
parse.add_argument("--ga", help="params means ga",dest='simple_value',choices=['A', 'B', 'C', 0])
parse.add_argument("--gb", help="params means gb",action="store_const",const='value-to-store')
args = parse.parse_args()
print(args.a, args.simple_value, args.gb,args.gc) # print(args.a, args.simple_value,args.ga, args.gb,args.gc) args.ga的名字就不存在了
### add_argument 说明 不带'--'或者的参数 调用脚本时必须输入值 参数输入的顺序与程序中定义的顺序一致 '-'的参数 可不输入 add_argument("-a") 类似有'--'的shortname,但程序中的变量名为定义的参数名 '--'参数 参数别名: 只能是1个字符,区分大小写 add_argument("-shortname","--name", help="params means"),但代码中不能使用shortname dest: 参数在程序中对应的变量名称 add_argument("a",dest='code_name') default: 参数默认值 help: 参数作用解释 add_argument("a", help="params means") type : 默认string add_argument("c", type=int) action: store:默认action模式,存储值到指定变量。 store_const:存储值在参数的const部分指定,多用于实现非布尔的命令行flag。 store_true / store_false:布尔开关。 store_true.默认为False,输入则为true。 store_flase 相反 append:存储值到列表,该参数可以重复使用。 append_const:存储值到列表,存储值在参数的const部分指定。 count: 统计参数简写输入的个数 add_argument("-c", "--gc", action="count") 则为统计
"-c", "--gc"出现的总次数,是一个计数器
version 输出版本信息然后退出。 const:配合action="store_const|append_const"使用,默认值 choices:输入值的范围 add_argument("--gb", choices=['A', 'B', 'C', 0]) required : 默认False, 若为 True, 表示必须输入该参数
# python try.py a 8
# try.py: error: unrecognized arguments: 8
# python try.py a=8
# a=8 None None count
nargs= argparse.REMAINDER
当nargs=argparse.REMAINDER时,解决了前面提到的当输入为 - or -- 开始时,argparse自动判断为下一个命令行参数的问题。从字面含义看,后面所有的输入,都是前面那个参数的数值输入。
import argparse parser = argparse.ArgumentParser() parser.add_argument('--remainder', nargs=argparse.REMAINDER, required=True) args = parser.parse_args() print(args.remainder)
E:\py>python arg.py --remainder [] E:\py>python arg.py --remainder 1 ['1'] E:\py>python arg.py --remainder 1 2 3 4 5 ['1', '2', '3', '4', '5'] E:\py>python arg.py --remainder 1 2 3 4 5 -k 1 2 3 4 5 ['1', '2', '3', '4', '5', '-k', '1', '2', '3', '4', '5'] E:\py>python arg.py --remainder ls -lh ['ls', '-lh']
请看以上示例的最后一次运行情况,使用nargs=argparse.REMAINDER,可以通过命令行,输入一个命令行工具,进而调用。参考资料。