[Python系列-25]:argparse --- 命令行选项参数解析器
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python系列-25]:argparse --- 命令行选项参数解析器相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:[Python系列-25]:argparse --- 命令行选项、参数解析器_文火冰糖(王文兵)的博客-CSDN博客
目录
第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 和 json 文件