python命令行参数argparse模块基本用法详解
啊哈彭 人气:0argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。
一、传入一个参数
import argparse # 创建一个命令行参数解析器 parser = argparse.ArgumentParser(description='命令行中传入一个数字') # 往解析器里面添加参数 parser.add_argument('integer', type=str, help='传入的数字') # 得到命令行传入的参数 args = parser.parse_args() print(args.integer)
二、传入多个参数
import argparse # 创建一个命令行参数解析器 parser = argparse.ArgumentParser(description='命令行中传入一个数字') # 往解析器里面添加参数 parser.add_argument('integer', type=str, nargs='+', help='传入的数字') # 得到命令行传入的参数 args = parser.parse_args() print(args.integer) # 以列表形式返回 注: - nargs='+': 传入一个或多个参数 - nargs='*': 传入零个或多个参数 - nargs='?': 传入零个或一个参数
三、改变数据类型
# 可通过更改type参数修改数据类型 parser.add_argument('integer', type=str, nargs='+', help='传入的数字')
四、可选参数(关键字参数)
注:参数前面加双横杠"- -"表示这个参数是可选参数,即在命令行中可以以键值得形式指定,顺序可以打乱。
import argparse parser = argparse.ArgumentParser(description='姓名') parser.add_argument('--family', type=str, help='姓') parser.add_argument('--name', type=str, help='名') args = parser.parse_args() #打印姓名 print(args.family+args.name) 命令行命令: python XXX.py --family 张 --name 三 or python XXX.py --name 三 --family 张
五、参数默认值
通过default指定默认值。
parser.add_argument('--family', default='李', type=str, help='姓') parser.add_argument('--name', type=str, help='名')
六、参数解析
parse_args()只能解析已知参数,parse_known_args()兼容未知参数并返回。
import argparse parser = argparse.ArgumentParser(description='姓名') parser.add_argument('--family', type=str,help='姓') parser.add_argument('--name', type=str,help='名') args = parser.parse_args() # args, dynamic_args = parser.parse_known_args() print(args) print(dynamic_args) 命令行示例: python XXX.py --family 张 --name 三 --test hello 结果: args = parser.parse_args() # 报错, error: unrecognized arguments: --test 5 args, dynamic_args = parser.parse_known_args() # 成功返回
补充:python中的argparse基本用法
1、argparse是一个python模块,用途是:命令行选项、参数和子命令的解释。
2、使用步骤:
- 导入argparse模块,并创建解释器
- 添加所需参数
- 解析参数
3、用法示例:
import argparse # 1.创建解释器 parser = argparse.ArgumentParser(description="可写可不写,只是在命令行参数出现错误的时候,随着错误信息打印出来。") # 2.添加需要的参数 parser.add_argument('-gf', '--girlfriend', choices=['jingjing', 'lihuan']) # 参数解释 # -gf 代表短选项,在命令行输入-gf和--girlfriend的效果是一样的,作用是简化参数输入 #--girlfriend 代表完整的参数名称,可以尽量做到让人见名知意,需要注意的是如果想通过解析后的参数取出该值,必须使用带--的名称 # choices 代表输入参数的只能是这个choices里面的内容,其他内容则会保错 parser.add_argument('--house', type=int, default=0) # 参数解释 # --house 代表参数名称 # type 代表输入的参数类型,从命令行输入的参数,默认是字符串类型 # default 代表如果该参数不输入,则会默认使用该值 parser.add_argument('food') # 参数解释 # 该种方式则要求必须输入该参数 # 输入该参数不需要指定参数名称,指定反而报错,解释器会自动将输入的参数赋值给food # 3.进行参数解析 args = parser.parse_args() print('------args---------',args) print('-------gf-------', args.girlfriend)
4、命令行运行方式
假设上述文件的名字是gf.py
在命令行运行时,则有以下几种情况:
- python gf.py potato ,这种方式会将potato赋值给food
- python gf.py -gf jingjing tomato,该种方式会将jingjing赋值给girlfriend,tomato赋值给food
- python gf.py --house 2 chicken,该种方式会将house赋值为2,food赋值为chicken
下面为以上三种情况的具体运行时截图:
a.
b.
c.
学会了以上的几种方式,argparse模块的基本用法也就掌握了。
加载全部内容