目录
- 1、简介
- 2、使用步骤
- 1)导入argparse模块,并创建解释器
- 2)添加所需参数
- 3)解析参数
- 3、使用 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、使用 pycharm 传递参数给 argparse
上面的操作,我们是通过 命令行 给 python 程序传递参数,一般适合于我们在 GPU 等 linux 操作系统中训练模型使用。
但是在平时我们调试算法的时候就会很不方便,没有办法利用编译器进行debug,所以接下来介绍如何在 Pycharm 中传递参数给 argparse,方便 pycharm 进行运行这类python程序。
1、如下图,点击 Edit configurations
2、在Parameters中添加需要的参数(只写参数),多个参数之间用空格隔开
3、最后直接运行,可以看到,把我们设置在Parameters里面设置的参数,会在Run的时候补全