Python之argparse
定义:argparse是python标准库里面用来处理命令行参数的库
命令行参数分为位置参数和选项参数:
位置(必选)参数:前面不需要-或者–;
可选参数:通过一个-来指定的短参数,如-h;通过–来指定的长参数,如- -help
使用步骤:
(1)import argparse 首先导入模块
(2)parser = argparse.ArgumentParser() 创建一个解析对象
(3)parser.add_argument() 向该对象中添加你要关注的命令行参数和选项
(4)args = parser.parse_args() 进行解析 或者 args,unparsed = parser.parse_known_args()
(5)索引参数args.pospath
(4‘)或者args = vars(parser.parse_args())将其变为一个字典
(5‘)索引参数 args[‘pospath’]
函数参数:
argparse.ArgumentParser 一般我们只选择用description
ArgumentParser对象保存了所有必要的信息,用以将命令行参数解析为相应的python数据类型。
prog=None - The name of the program (default: sys.argv[0]) 程序文件名
usage=None - The string describing the program usage (default:
generated from arguments added to parser) 程序使用说明 description=None -
help时显示的开始文字 Text to display before the argument help (default: none)
epilog=None, - help时显示的结尾文字 parents=[], -若与其他参数的一些内容一样,可以继承
formatter_class=argparse.HelpFormatter, - 自定义帮助信息的格式
prefix_chars=’-’, - 命令的前缀,默认是‘-’ fromfile_prefix_chars=None, -
命令行参数从文件中读取 argument_default=None, - 设置一个全局的选项缺省值,一般每个选项单独设置
conflict_handler=‘error’, -
定义两个add_argument中添加的选项名字发生冲突时怎么处理,默认处理是抛出异常 add_help=True -
是否增加-h/–help选项,默认是True)
parser.add_argument()
通过add-argument()方法来给ArgumentParser对象添加新的命令行参数,参数的类型和相应的处理方法由不同的参数决定。
name or flags… - 必选参数名或者可选参数标识符,它必须作为add_argument()方法的第一个参数。 dest
这个参数相当于把位置参数或者选项参数关联到一个特定的名字 action - 表示值赋予键的方式,这里用到的是bool类型,action意思是当读取的参数中出现指定参数的时候的行为 help -
参数的说明信息 required - 说明参数是否必须进行输入,只支持可选参数。 type - 指定命令行参数数据类型
choices - 说明命令行参数的取值范围,它的值一般是一个列表。choices列表中元素的类型应该与type批定的类型相兼容
nargs -
指定这个参数后面的value有多少个,默认为1,如果设定为数字,比如2,表示接受2个value;如果设定为‘?’那么就只接受1个或者0个value,当0个value是默认值是default的value;如果设定为‘*’,后面可接多个value
default - 必选参数和可选的参数的默认值。
args=parser.parse_args(args=None, namespace=None)
parse_args()方法将命令行参数字符串转换为相应对象并赋值给Namespace对象的相应属性,默认返回一个Namespace对象。
args - List of strings to parse. The default is taken from
sys.argv. 字符串列表,默认来自sys.argv namespace - An object to take the
attributes. The default is a new empty Namespace object.
对象名,默认是一个空Namespace对象。
args,unparsed = parser.parse_known_args()
args为namespace空间,包含程序定义了的命令行参数,而unparsed为程序没有定义的命令行参数。和上面函数不一样的在于,如果命令行输入没有定义的参数,不会报错(但是上面的会报错),并且返回一个列表给unparsed,里面包含的就是未定义的输入参数。
示例
编写py文件 get.py
import argparseparser = argparse.ArgumentParser()
parser.add_argument("-t", "--timer_name", help="timer name")
parser.add_argument("-p", "--project", help="project name")
args = parser.parse_args()print("-t:%s" % args.timer_name)
print('-p:%s' % args.project)
在命令行输入 python get.py -t 123 -p 456
输出:
-t:123
-p:456
Python之argparse相关推荐
- python使用argparse解析命令行参数
python使用argparse解析命令行参数 你的程序如何能够解析命令行选项(位于sys.argv中) #示意使用sys.argv进行参数解析: #注意,sys.argv中第0个索引是函数本身,所以 ...
- python的argparse模块
使用步骤: 1:import argparse #导入argparse模块 2:parser = argparse.ArgumentParser() #创建实例 3:par ...
- Python的argparse
Python argparse module is the preferred way to parse command line arguments. Parsing command-line ar ...
- python遍历argparse的parse_args()
python遍历argparse的parse_args()对象 由于我想把parse_args()对象的数据格式化后保存在log日志文件,于是我想要遍历解析器配置的参数. 简单通过for i in a ...
- python自学argparse模块
argparse模块 argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块 使用步骤 import argparse # 导入模块,这个没什么说的 ...
- python:argparse命令行解析模块详解
argparse命令行解析模块学习 import argparse parser = argparse.ArgumentParser() #类似于初始化吧 parser.parse_args() #解 ...
- python 中argparse 实例解析
一 概念: argparse是python的一个命令行解析包.它可以使写用户友好的命令行接口变得非常容易.该模块定义什么参数是需要的,并且能指出怎么解析sys.argv的参数.它也可以自动的生成帮助和 ...
- python之Argparse模块
argparse 模块可以轻松编写用户友好的命令行接口.程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数. argparse 模块还会自动生成帮助和使用手册 ...
- python中argparse模块
参考官方文档https://docs.python.org/zh-cn/3/library/argparse.html#nargs python中参数解释器,使用流程: import argparse ...
- Python 中argparse模块的使用
正文共495个字,预计阅读时间5分钟. Python解析命令行读取参数有两种方式:sys.argv和argparse 1.sys.argv 如果脚本很简单或临时使用,没有多个复杂的参数选项,可以直接利 ...
最新文章
- 蓝桥杯_算法训练_最小乘积(基本型)
- 【微信小程序】wx:if
- list 数据类型的应用场景
- 四人帮–代理设计模式
- 从踩坑到填坑|淘宝Web 3D应用与游戏开发实战
- 汇编语言-王爽 随书源码、检测点、实验答案
- [转]asp 无法连接 access,出现 -2147467259 未指定的错误
- OS + Win Office / word / excel / ppt / powerpoint / keyboard_shortcut
- 计算机复制粘贴不可用问题解决,电脑复制粘贴功能失效无法复制粘贴文字怎么办...
- 解决regedit taskmgr不能启动
- 2022牛客多校J题 Serval and Essay
- 动态规划(Dynamic Programing)背包——01背包
- Excel 有哪些可能需要熟练掌握而很多人不会的技能2
- 【Bug小记】input:-webkit-autofill:输入框自动填充背景问题
- k-means算法进行员工培训方向分组
- java-net-php-python-16jspm望奎县城郊所考勤系统计算机毕业设计程序
- 陈本峰:HTML5跨屏前端框架Amaze UI的开源之道
- 坐标轴删了怎么恢复_EXCEL表折线图已经删掉的图例怎么恢复 - 卡饭网
- Tiny210裸机开发初体验
- gprMax项目代码分解:gprMax.py