使用argparse库传递参数的两种方式

目录

1.参数定义

2.pycharm传递参数

1)找到编辑环境变量

2)添加参数

3)参数使用

3.命令提示符传递参数


argparse库用于解析命令行参数,通常用于从命令行传入参数以控制程序。此处将示范两种传递参数的方式,分别是pycharm中和命令提示符中

1.参数定义

import argparse

ap = argparse.ArgumentParser()
# 创建一个ArgumentParser()对象ap,用于解析命令行参数

ap.add_argument("-i", "--image", required=True,help="path to input image")
# 添加一个命令行参数
# -i或--image指定参数名称,可以通过-i或--image参数指定输入图像的路径
# required=True表示该参数是必须的,必须提供输入图像的路径
# help="path to input image" 提示用户该参数是用于指定输入图像的路径

ap.add_argument("-t", "--template", required=True,help="path to template OCR-A image")
# 添加另一个命令行参数,类似于上一步
# -t或--template指定参数名称,可以通过-t或--template参数指定OCR-A模板图像的路径
# required=True表示该参数是必须的,必须提供OCR-A模板图像的路径
# help="path to template OCR-A image" 提示用户该参数是用于指定OCR-A模板图像的路径

args = vars(ap.parse_args())
# 使用ap.parse_args()方法解析命令行参数,并将解析后的结果存储在args变量中
# parse_args()会自动处理命令行参数并返回一个包含解析结果的Namespace对象
# vars()方法将Namespace对象转换为包含对象的属性和值的字典

  程序中可以通过args["image"]和args["template"]来获取用户传入的图像路径和模板路径。

2.pycharm传递参数

1)找到编辑环境变量

2)添加参数

在script parameters中输入以下代码:

-i ./images/credit_card_01.png -t ocr_a_reference.png

  单击OK,完成。

3)参数使用

使用此参数传入指定图片

img = cv2.imread(args["template"])
cv2.imshow('img', img)
cv2.waitKey(0)
image = cv2.imread(args["image"])
cv2.imshow('image',image)
cv2.waitKey(0)

运行结果

3.命令提示符传递参数

  首先进入程序文件所在路径,然后运行以下命令:

python main.py -i ./images/credit_card_01.png -t ocr_a_reference.png
# main.py为Python脚本文件名
# ./images/credit_card_01.png为图片路径
# ocr_a_reference.png为模板路径
# -i和-t是在ap.add_argument()中定义的参数名

运行结果同上。

  • 15
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来回答你的问题。 首先,argparsePython的一个命令行参数解析,它可以让我们方便地处理命令行参数。使用argparse,我们可以轻松定义命令行参数,同时还能为这些参数添加一些说明和默认值。 关于你的问题,我们可以通过定义两个互斥的参数来解决。具体来说,我们可以使用argparse中的add_mutually_exclusive_group()方法来创建一个互斥的参数组,然后将需要互斥的两个参数添加到这个组中即可。 下面是一个使用argparse定义5个参数,并且其中两个参数的互斥关系的示例代码: ```python import argparse parser = argparse.ArgumentParser(description='An example of using argparse to parse command-line arguments') # 创建一个互斥参数组 group = parser.add_mutually_exclusive_group() # 添加5个参数 parser.add_argument('--arg1', type=str, help='argument 1') parser.add_argument('--arg2', type=int, help='argument 2') parser.add_argument('--arg3', type=float, help='argument 3') parser.add_argument('--arg4', action='store_true', help='argument 4') parser.add_argument('--arg5', action='store_true', help='argument 5') # 将需要互斥的两个参数添加到同一组中 group.add_argument('--arg4', action='store_true', help='argument 4') group.add_argument('--arg5', action='store_true', help='argument 5') # 解析命令行参数 args = parser.parse_args() # 打印参数值 print(args.arg1) print(args.arg2) print(args.arg3) print(args.arg4) print(args.arg5) ``` 在上面的代码中,我们首先创建了一个ArgumentParser对象,并设置了一个描述信息。然后,我们使用add_argument()方法添加了5个参数,其中两个参数(arg4和arg5)被添加到了同一个互斥的参数组中。 最后,我们使用parse_args()方法解析命令行参数,并打印了各个参数的值。 希望这个示例对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值