python之argparse模块,及Pycharm中传递参数给argparse

python之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
运行效果如下
python之argparse模块,及Pycharm中传递参数给argparse_第1张图片

二、Pycharm中传递参数给argparse

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

  1. 打开 Run -> Edit configurations python之argparse模块,及Pycharm中传递参数给argparse_第2张图片
  2. 在Parameters中添加需要的参数,多个参数之间用空格隔开:
    python之argparse模块,及Pycharm中传递参数给argparse_第3张图片
  3. 直接点击Run即可,运行效果如下:
    可以看到,把我们设置在Parameters里面的参数会在Run的时候补全
    python之argparse模块,及Pycharm中传递参数给argparse_第4张图片下面是打印出来的参数
    python之argparse模块,及Pycharm中传递参数给argparse_第5张图片

你可能感兴趣的:(机器学习,python)