argparse的使用

argparse包是使用命令行运行python程序时,为了进行参数配置而使用的包

基础使用

import argparse
from argparse import Namespace

parser = argparse.ArgumentParser('测试程序')  # 命令行运行这个.py文件,后面跟上-help会会出现测试程序
parser.add_argument('--name', required=True, help='your name')
parser.add_argument('--age', default=100, help='your age')
# 命令行赋值:如  python E:\PyCharm\ciyun\argdemo.py --name ha --age 94 ,仿照如此格式即可

# list = [
#     'hahaha',
#     'heiheihei'
# ]

args = parser.parse_args()   # 返回Namespace类
print('parse_args()的类型是', end='')
print(type(args))
print(args)
print('参数name:'+args.name+'  类型是:', end='')
print(type(args.name))



# 命令行运行结果如下
# '''
# C:\Users\22926>python E:\PyCharm\ciyun\argdemo.py --name ha --age 94
# parse_args()的类型是<class 'argparse.Namespace'>
# Namespace(age='94', name='ha')
# 参数name:ha  类型是:<class 'str'>
# '''

 

在程序后加上 -h的后缀表示查看帮助。

上图中画红框的部分没有中括号括起来,是因为程序中添加--name 的参数配置时,其中的代码:

parser.add_argument('--name', required=True, help='your name')

其中required=True,表示它是positional argument,而并非optional argument

互斥参数

#导入命令行解析的库文件
import argparse

# 生成一个参数解析器对象,其中description后的内容为--help时出现的提示内容
parse = argparse.ArgumentParser(description="ArgumentParser description")
# 单个参数按照上面正常使用
parse.add_argument('name',help='your name')
# 先要定义一个互斥的参数组 鱼与熊掌不可兼得
group = parse.add_mutually_exclusive_group()
# 同一组中的参数不可同时出现,最多只能出现一个,也可以都不出现
group.add_argument('-f','--fish',help='fish',action='store_true')
group.add_argument('-b','--bear',help='bear paw',action='store_true')
args = parse.parse_args()
# args为Namespace的示例,其中包含参数名与参数值
print(args)

# 运行python3.6 test.py muyi -f
Namespace(bear=False, fish=True, name='muyi')
# 运行python3.6 test.py muyi -b
Namespace(bear=True, fish=False, name='muyi')
# 运行python3.6 test.py muyi -f -b
# 报错如下
usage: test.py [-h] [-f | -b] name
test.py: error: argument -b/--bear: not allowed with argument -f/--fish

# 参考资料:https://blog.csdn.net/Noonebirdyou/article/details/94642167
发布了38 篇原创文章 · 获赞 9 · 访问量 6296

猜你喜欢

转载自blog.csdn.net/qq_42138454/article/details/104200024
今日推荐