[Python系列-25]:argparse --- 命令行选项参数解析器

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python系列-25]:argparse --- 命令行选项参数解析器相关的知识,希望对你有一定的参考价值。

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:[Python系列-25]:argparse --- 命令行选项、参数解析器_文火冰糖(王文兵)的博客-CSDN博客


目录

第1章  概述

1.1 概述

1.2 库

1.3 命令行案例

第2章 ArgumentParser的使用

2.1 创建 ArgumentParser对象

2.2 添加命令行参数:add_argument()方法

2.3 输入带参数的命令行

2.4 解析输入的参数



第1章  概述

1.1 概述

argparse 模块可以让人轻松编写用户友好的命令行接口

程序定义它需要的参数,然后 argparse 将从 sys.argv 解析出那些参数。

 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

1.2 库

import argparse

1.3 命令行案例

C:/Users/admin/PycharmProjects/NewsText/run.py --model TextRNN

第2章 ArgumentParser的使用

2.1 创建 ArgumentParser对象

使用 argparse 的第一步是创建一个 ArgumentParser 对象.

parser = argparse.ArgumentParser(description='Process some integers.')

ArgumentParser 对象包含将命令行参数,解析成 Python 数据类型所需的全部信息

创建一个新的 ArgumentParser 对象。

所有的参数都应当作为关键字参数传入。

每个参数在下面都有它更详细的描述,但简而言之,它们是:

  • prog - 程序的名称(默认值:sys.argv[0]

  • usage - 描述程序用途的字符串(默认值:从添加到解析器的参数生成)

  • description - 在参数帮助文档之前显示的文本(默认值:无)

  • epilog - 在参数帮助文档之后显示的文本(默认值:无)

  • parents - 一个 ArgumentParser 对象的列表,它们的参数也应包含在内

  • formatter_class - 用于自定义帮助文档输出格式的类

  • prefix_chars - 可选参数的前缀字符集合(默认值: '-')

  • fromfile_prefix_chars - 当需要从文件中读取其他参数时,用于标识文件名的前缀字符集合(默认值: None

  • argument_default - 参数的全局默认值(默认值: None

  • conflict_handler - 解决冲突选项的策略(通常是不必要的)

  • add_help - 为解析器添加一个 -h/--help 选项(默认值: True

  • allow_abbrev - 如果缩写是无歧义的,则允许缩写长选项 (默认值:True

  • exit_on_error - 决定当错误发生时是否让 ArgumentParser 附带错误信息退出。 (默认值: True)

2.2 添加命令行参数:add_argument()方法

给一个 ArgumentParser 添加程序参数信息是通过调用 add_argument() 方法完成的。

通常,这些调用指定 ArgumentParser 如何获取命令行字符串并将其转换为对象。

这些信息在 parse_args() 调用时被存储和使用。例如:

parser.add_argument('--model', type=str, required=True, help='choose a model: '', TextRNN, FastText, TextRCNN, TextRNN_Att, DPCNN, Transformer')
parser.add_argument('--embedding', default='pre_trained', type=str, help='random or pre_trained')

parser.add_argument('--word', default=False, type=bool, help='True for word, False for char')

上述案例定义了三个命令函数参数。

-- name:指定命令行参数名称

type:参数的数据类型

help:帮助命令的命令行提示信息。

required=True:必选参数,没有默认值。

default='pre_trained':指定参数的默认值(针对可选参数)

2.3 输入带参数的命令行

C:/Users/admin/PycharmProjects/NewsText/run.py --model TextRNN

2.4 解析输入的参数

args = parser.parse_args()

print("the input args:")
print(args)


#通过args读取命令行参数值

if args.embedding == 'random':
    embedding = 'random'


#通过args读取命令行参数值
model_name = args.model  #TextCNN, TextRNN,

the input args:
Namespace(embedding='pre_trained',   model='TextRNN',    word=False)
 


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:[Python系列-25]:argparse --- 命令行选项、参数解析器_文火冰糖(王文兵)的博客-CSDN博客

以上是关于[Python系列-25]:argparse --- 命令行选项参数解析器的主要内容,如果未能解决你的问题,请参考以下文章

Python的Argparse模块是什么?(未完)

Python每天学一点之argparse

如何在 python 中使用 argparse 和 json 文件

Python argparse 互斥组

无法在 Windows 上为 python 2.5 导入 argparse 1.2.1

python Argparse的例子。 #python #argparse #command-line