基础
demo.py文件
import argparse
parser = argparse.ArgumentParser(description='命令行中传入一个姓名')
#type是要传入的参数的数据类型 help是该参数的提示信息
parser.add_argument('name', type=str, help='姓名')
args = parser.parse_args()
#获得传入的参数
print(args)
#print(args.name)
命令行:
python demo.py -h #提示信息
python demo.py helena #Namespace(name='helana')
进阶
#传入多个参数
parser.add_argument('integers', type=str, nargs='+',help='传入的数字')
#改变数据类型
type=list, str, tuple, set, dict
#可选参数
parser.add_argument('--family', type=str,help='姓')
print(args.family)
命令台:python demo.py --family Zhang
注: 用'-'也可以,'-'和'--'同时出现,如'-h','--help'
#默认值
parser.add_argument('--family', type=str, default='张',help='姓')
#必需参数
required=True
#子命令
subparsers = parser.add_subparsers(help='sub-command help')
创建子命令
demo.py文件
#添加子命令 add
parser_a = subparsers.add_parser('add', help='add help')
parser_a.add_argument('-x', type=int, help='x value')
parser_a.add_argument('-y', type=int, help='y value')
#添加子命令 sub
parser_s = subparsers.add_parser('sub', help='sub help')
parser_s.add_argument('-x', type=int, help='x value')
parser_s.add_argument('-y', type=int, help='y value')
args = parser.parse_args()
print('x', args.x, 'y', args.y)
命令行
demo.py add -x 1 -y 2 #输出:x 1 y 2
add_argument() 方法
name or flags - 一个命名或者一个选项字符串的列表,例如 foo 或 -f, --foo。
action - 当参数在命令行中出现时使用的动作基本类型。
nargs - 命令行参数应当消耗的数目。
const - 被一些 action 和 nargs 选择所需求的常数。
default - 当参数未在命令行中出现并且也不存在于命名空间对象时所产生的值。
type - 命令行参数应当被转换成的类型。
choices - 可用的参数的容器。
required - 此命令行选项是否可省略 (仅选项可用)。
help - 一个此选项作用的简单描述。
const
add_argument() 的
const
参数用于保存不从命令行中读取但被各种动作需求的常数值。
例子: 当 add_argument() 通过选项(例如 -f 或 --foo)调用并且 nargs=’?’ 时。这会创建一个可以跟随零个或一个命令行参数的选项。当解析命令行时,如果选项后没有参数,则将用 const 代替。
argparse模块用法实例详解
Python 关于argparse子命令subparsers()方法
argparse基本用法