Python argparse模块实现解析命令行参数方法详解

argparse是Python的一个标准模块,用于解析命令行参数,即解析sys.argv中定义的参数。实现在:传送门

argparse模块还会自动生成帮助和使用信息,即在最后加-h或--help。当用户输入的参数无效时,会触发error,并给出出错原因。

python test_argparse.py -h
python test_argparse.py --help

使用argparse的步骤:

1.创建解析器:argparse.ArgumentParser(),ArgumentParser是个class,构造它时有很多参数可以指定,若不指定这些参数都使用默认值,如description=None:此python程序功能的描述;add_help=True:添加-h/--help选项

parser = argparse.ArgumentParser(description="test argparse's use", add_help=True)

2.添加参数:parser.add_argument(*args, **kwargs):*args允许函数接受任意数量的位置参数(positional arguments),**kwargs允许函数接受任意数量的关键字参数。Python不允许位置参数跟在关键字参数之后。

(1).name or flags:一个名字,位置参数(positional arguments),不带有"-"或"--",如foo;一个可选字符串的列表,如-f, --foo。当parse_args()被调用时,可选参数会以"-"前缀识别,剩下的参数则会被假定为位置参数。

parser.add_argument("integers", metavar="N", type=int, nargs="+", help="an integer for the accumulator") # positional argument
parser.add_argument("--sum", dest="accumulate", action="store_const", const=sum, default=max, help="sum the integers(default: find the max)") # optional argument
args = parser.parse_args()
print(args.accumulate(args.integers)) # print either the sum or the max of the command-line integers

(2).action:ArgumentParser对象将命令行参数与action相关联。这些action可以做与它们相关联的命令行参数的任何事,尽管大多数action只是简单的向parse_args()返回的对象上添加一个属性。action关键字参数指定应如何处理命令行参数。默认的action是"store",存储参数的值。

(3).nargs:此关键字参数将不同数量的命令行参数与单个操作相关联。

"?":如果不存在命令行参数,则会使用default值;还有一种情况,"-"选项字符串存在,但后面没有跟着命令行参数,则会使用const值。

"*":所有命令行参数都收集到一个列表中。

"+":与"*"类似,但至少存在一个命令行参数,否则会产生错误消息。

parser.add_argument('--foo', nargs='?', const='c', default='d')
args = parser.parse_args()
print(args.foo) # print 'c' or 'd' or command-line input

(4).const:此关键字参数用于保存不是从命令行中读取但被各种ArgumentParser操作所需的常量值。对'store_const'和'append_const' action,const关键字参数必须给出;对其它action,默认为None。

(5).default:此关键字参数用于在命令行参数不存在应使用的值,默认值为None。

(6).type:此关键字参数允许执行任何必要的类型检查和类型转换。

(7).choices:某些命令行参数应当从一组受限值中选择,这些可以通过将容器对象作为choices关键字参数传递给add_argument()来处理。当执行命令行解析时,参数值将被检查,如果参数不是可接受的值之一将触发错误消息。

parser.add_argument('addr', type=str, choices=['csdn', 'github'])
args = parser.parse_args()
print("addr:", args.addr)

(8).required:通常,argparse模块假定"-f"和"--bar"等标志表示可选参数,在命令行中始终可以省略这些参数。要让一个选项成为必需的,则可以将required关键字参数指定为True。

(9).help:包含参数简短描述的字符串。通常在命令行中使用-h或--help时,这些help描述将与每个参数一起显示。

(10).metavar:当ArgumentParser生成帮助消息时,它需要某种方式来引用每个预期的参数。默认情况下,ArgumentParser对象使用dest值作为每个对象的"name"。默认情况下,对于位置参数action,直接使用dest值,对于可选参数action,dest值是大写的。可以使用metavar来指定一个替代名称。

parser.add_argument('--foo')
parser.add_argument('--bar', metavar='XXX')
args = parser.parse_args()

(11).dest:大多数ArgumentParser操作都会添加一些值作为parse_args()返回的对象的一个属性。此属性的名称由add_argument()的dest关键字参数确定。

3.解析参数:parser.parse_args(),将参数字符串转换为对象并将其设为命名空间的属性,返回带有成员的命名空间。

更多介绍参考:传送门

GitHub

到此这篇关于Python argparse模块实现解析命令行参数方法详解的文章就介绍到这了,更多相关Python argparse模块 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-09-22

python argparse命令行参数解析(推荐)

argparse是python用于解析命令行参数和选项的标准模块. 很多时候,需要用到解析命令行参数的程序,目的是在终端窗口输入训练的参数和选项. argparse 模块可以让人轻松编写用户友好的命令行接口. 程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数. argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息. test.py # -*- coding: utf-8 -*- import argparse #

Python argparse 解析命令行参数模块详情

目录 一.预备知识 1.安装 2.使用的一般步骤 二.实操笔记 1.函数详解 1.1ArgumentParser 1.2add_argument 2.调用实例 一.预备知识 argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行参数. 1.安装 argsparse是python的命令行解析的标准模块,内置于python,不需要安装.使用的时候直接: import argparse 2.使用的一般步骤 这

Python命令行参数解析包argparse的使用详解

目录 一.argparse简介 二.简单案例 三.ArgumentParser参数 四.add_argument指令参数解释 五.vars() 一.argparse简介 argparse 是 python 自带的命令行参数解析包,可以用来方便的服务命令行参数,使用之前需要先导入包 import argparse 二.简单案例 简单使用,创建一个名为test.py的文件 # 导入 argparse 模块 import argparse # 创建一个argparse 的对象 parser = arg

Python详解argparse参数模块之命令行参数

目录 前言 示例一:最简参数对象 示例二:整数求和 示例三:文件是否被篡改 自定义类型 choices选项限定 required必选参数 子命令 前言 help(argparse)查看说明文档,“argparse - Command-line parsing library”我们可以知道是一个命令行解析库,是关于参数解析相关的一个模块. 示例一:最简参数对象 先来一段简单的代码,快速熟知下这个参数是个啥.保存为t.py这样一个文件 import argparse parser = argpars

Python 中使用 argparse 解析命令行参数

目录 1.Python 中的参数解析 2.类型 3.子命令 4.程序架构 使用 argparse 模块为应用程序设置命令行选项. 有一些第三方库用于命令行解析,但标准库 argparse 与之相比也毫不逊色. 无需添加很多依赖,你就可以编写带有实用参数解析功能的漂亮命令行工具. 1.Python 中的参数解析 使用 argparse 解析命令行参数时,第一步是配置一个 ArgumentParser 对象.这通常在全局模块内完成,因为单单_配置_一个解析器没有副作用. import argpars

Python命令行参数argv和argparse该如何使用

概述 运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式: sys.argv - 简洁 argparse - 丰富,可自定义 下面详细说一下具体时使用 argv # test_argv.py import sys args = sys.argv print(f'args = {args}') >>> output ➜ git:(master) python3 test_argv.py args = ['test_argv.py'] ➜ git:(master) ✗ p

python 如何利用argparse解析命令行参数

命令行参数工具是我们非常常用的工具,比如当我们做实验希望调节参数的时候,如果参数都是通过硬编码写在代码当中的话,我们每次修改参数都需要修改对应的代码和逻辑显然这不太方便.比较好的办法就是把必要的参数设置成通过命令行传入的形式,这样我们只需要在运行的时候修改参数就可以了. sys.argv 解析命令行传入参数最简单的办法就是通过sys.argv,sys.argv可以获取到我们通过命令行传入的参数. import sys print(sys.argv) 用法很简单,只需要调用sys.argv即可.a

Python 利用argparse模块实现脚本命令行参数解析

study.py内容如下 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'shouke' import argparse def argparseFunc(): ''' 基于argparse模块实现命令参数解析功能 执行示例: python study.py -i 172.19.7.236 -p 8080 -a -r python study.py --ip 172.19.7.236 --port 7077 --auth -w

Python中最好用的命令行参数解析工具(argparse)

Python 做为一个脚本语言,可以很方便地写各种工具.当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现). 如果要以命令行执行,那你需要解析一个命令行参数解析的模块来帮你做这个苦力活. Python 本身就提供了三个命令行参数解析模块,我这里罗列一下它们的大致情况供你了解. getopt,只能简单的处理命令行参数 optparse,功能强大,易于使用,可以方便地生成标准的.符合Unix/Posix 规范的命令行说明. argparse,使其更加容易的编

Python中的命令行参数解析工具之docopt详解

前言 docopt 是一个开源的库,代码地址:https://github.com/docopt/docopt.它在 README 中就已经做了详细的介绍,并且还附带了很多例子可供学习,这篇文章也是翻译一下 README 中内容-- docopt 最大的特点在于不用考虑如何解析命令行参数,而是当你把心中想要的格式按照一定的规则写出来后,解析也就完成了. docopt的安装 docopt有很多种版本,分别支持不同的语言,最简答的docopt支持python脚本,docopt.java支持java脚

Python命令行参数解析工具 docopt 安装和应用过程详解

什么是 docopt? 1.docopt 是一种 Python 编写的命令行执行脚本的交互语言. 它是一种语言! 它是一种语言! 它是一种语言! 2.使用这种语言可以在自己的脚本中,添加一些规则限制.这样脚本在执行的时候就必须按照这样格式来执行,同时,也可以很方便的编写一些帮助信息(其实很多软件在输入 -h 的时候显示信息 .例如 python -h ,会显示所有的 python 指令,并且页通过 docopt 限制了 python 指令的格式),下面是一些简单的例子: docopt 的安装 d

shell脚本命令行参数简介

之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互.bash shell提供了命令行参数添加在命令后面的数据值).命令行选项修改命令行为的单字符值)和直接读取键盘输入. 1.命令行参数向shell脚本传递数据的最基本方式是使用命令行参数. 1)读取参数读取输入的参数的变量为位置参数,位置参数通过标准数字表示,其中$0为程序名称,$1为第一个参数,$2为第二个参数,依次类推,直到$9为第九个参数.shell脚本自动将命令行参数赋值给各个位置变量.同时输入多个参数可以是数值也可

python命令行参数解析OptionParser类用法实例

本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下: from optparse import OptionParser parser = OptionParser(usage="usage:%prog [optinos] filepath") parser.add_option("-t", "--timeout", action = "store", type =

使用Apache commons-cli包进行命令行参数解析的示例代码

Apache的commons-cli包是专门用于解析命令行参数格式的包. 依赖: <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.3.1</version> </dependency> 使用此包需要: 1.先定义有哪些参数需要解析.哪些参数有额外的选项.每个参数的描述等等,对应

Python命令行参数解析模块optparse使用实例

示例 复制代码 代码如下: from optparse import OptionParser [...] def main():     usage = "usage: %prog [options] arg"     parser = OptionParser(usage)     parser.add_option("-f", "--file", dest="filename",                     

Python命令行参数解析模块getopt使用实例

格式 getopt(args, options[, long_options]) 1.args表示要解析的参数. 2.options表示脚本要识别的字符.字符之间用":"分隔,而且必须要以":"后结尾,例如"a:b:c:". 3.long_options是可选的,如果指定的话,可以解析长选项.形式为字符串列表,如['foo=', 'frob='].长选项要求形式为"–name=value" 4.该方法返回2个元素.第一个元素是

Python如何使用argparse模块处理命令行参数

这篇文章主要介绍了Python如何使用argparse模块处理命令行参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍 argparse是python3标准库里用来处理命令行参数的模块 使用三步走: 创建 ArgumentParser() 对象 调用 add_argument() 方法添加参数 使用 parse_args() 解析添加的参数 实例 我们先来创建一个python文件 vim test.py 然后开始在输入模式(i)下输入代码