python — argparse模块,及Pycharm传递参数给argparse
argparse 模块可以编写用户友好的命令行接口。
程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。
一、argparse用法
-
主要有三个步骤:
- 创建 ArgumentParser() 对象
- 调用 add_argument() 方法添加参数
- 使用 parse_args() 解析添加的参数
-
示例demo如下:
以深度学习中经常出项的的演示demo为例# 导入包 import argparse # 创建解析器 ap = argparse.ArgumentParser() # 添加位置参数(positional arguments) ap.add_argument("-i", "--input", required=True, help="path to the input folder") ap.add_argument("-m", "--model", required=True, help="path to the model file") args = vars(ap.parse_args()) print(args) print(args["input"],args["model"])
在终端中执行:python main.py -i demo/ -m fh02.pth
运行效果如下:
二、Pycharm中传递参数给argparse
上面那一种是通过 命令行 给 python 程序传递参数,一般适合于我们在GPU等linux操作系统中训练模型使用。
但是在平时我们调试算法的时候就会很不方便,没有办法利用编译器进行debug,所以接下来我将指出,如何在Pycharm中传递参数给argparse,方便译器pycharm进行运行这类python程序。
步骤如下:
-
打开 Run -> Edit configurations
-
在Parameters中添加需要的参数,多个参数之间用空格隔开:
-
直接点击Run即可,运行效果如下:
可以看到,把我们设置在Parameters里面的参数会在Run的时候补全
下面是打印出来的参数