【python】argparse 模块的使用、Pycharm中使用argparse

1、简介

argparse 模块是 Python 标准库中提供的一个命令行解析模块,它可以让使用者以类似 Unix/Linux 命令参数的方式输入参数,并将参数解析为 Python 变量,从而方便使用者更加快捷的处理参数。


2、使用步骤

1)导入argparse模块,并创建解释器

import argparse

# 创建解释器
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)
print('food-----:', args.food)

在终端运行结果:

(base) enzo@enzo-MBP test % python main.py apple -gf jingjing      
args-----: Namespace(girlfriend='jingjing', house=0, food='apple')
gf-------: jingjing
food-----: apple

3、其他参数说明

参数:action

add_argument 方法中传入参数 action=‘store_true’/‘store_false’ ,解析出来就是 bool型参数 True/False,具体规则为:

  • store_true:如果未指定该参数,默认状态下其值为False;若指定该参数,将该参数置为 True
  • store_false:如果未指定该参数,默认状态下其值为True;若指定该参数,将该参数置为 False
import argparse

parser = argparse.ArgumentParser(description="description")

parser.add_argument('--pa','-a',action='store_true')
parser.add_argument('--pb','-b',action="store_false")
>> python test.py
Namespace(pa=False, pb=True)

>> python test.py -a -b
Namespace(pa=True, pb=False)

若 该参数 同时给了 action 和 default,在未指定该参数的情况下,以 default 值为准;在指定该参数的情况下,以 action 的值为准。

import argparse

parser = argparse.ArgumentParser(description="description")

parser.add_argument('--pa','-a',action='store_true')
parser.add_argument('--pb','-b',action="store_true",default=True)
parser.add_argument('--pc','-c',action="store_true",default=False)

parser.add_argument('--pd','-d',action='store_false')
parser.add_argument('--pe','-e',action="store_false",default=True)
parser.add_argument('--pf','-f',action="store_false",default=False)

args = parser.parse_args()
print(args)

>> python test.py
Namespace(pa=False, pb=True, pc=False, pd=True, pe=True, pf=False)

>> python test.py -a -b -c -d -e -f
Namespace(pa=True, pb=True, pc=True, pd=False, pe=False, pf=False)

4、使用 pycharm 传递参数给 argparse

上面的操作,我们是通过 命令行 给 python 程序传递参数,一般适合于我们在 GPU 等 linux 操作系统中训练模型使用。
但是在平时我们调试算法的时候就会很不方便,没有办法利用编译器进行debug,所以接下来介绍如何在 Pycharm 中传递参数给 argparse,方便 pycharm 进行运行这类python程序。

1、如下图,点击 Edit configurations
在这里插入图片描述

2、在Parameters中添加需要的参数(只写参数),多个参数之间用空格隔开
在这里插入图片描述
3、最后直接运行,可以看到,把我们设置在Parameters里面设置的参数,会在Run的时候补全

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Enzo 想砸电脑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值