大气企业响应式网站,公司外贸网站建设,营销策划包括哪几个方面,自己做网站模板Python标准库之argparse#xff0c;详解如何创建一个ArgumentParser对象及使用 一. argparse介绍二. 使用步骤及参数介绍三. 具体使用3.1 设置必需参数3.2 传一个参数3.3 传多个参数3.4 位置参数和可选参数3.5 参数设置默认值3.6 其它用法 一. argparse介绍 很多时候#xff… Python标准库之argparse详解如何创建一个ArgumentParser对象及使用 一. argparse介绍二. 使用步骤及参数介绍三. 具体使用3.1 设置必需参数3.2 传一个参数3.3 传多个参数3.4 位置参数和可选参数3.5 参数设置默认值3.6 其它用法 一. argparse介绍 很多时候我们的程序要带参数来运行不同的功能需要解析命令行参数。argparse模块能够很好的提供支持。 argparse是 python 自带的命令行参数解析包用于解析命令行参数的标准模块。可以让人轻松编写用户友好的命令行接口还会自动生成帮助和使用手册并在用户给程序传入无效参数时报出错误信息。 二. 使用步骤及参数介绍
argparse模块的使用可以简化成下面四个步骤
1import argparse 导入模块
2parser argparse.ArgumentParser() 创建一个解析对象命令行解析器 ArgumentParser对象的相关属性全部参数
3parser.add_argument() 向该对象中添加要关注的命令行参数和选项每一个add_argument方法对应一个要关注的参数或选项 add_argument相关属性全部参数
属性解释name or flags一个命名或者一个选项字符串的列表例如 foo 或 -f, --foo。action当参数在命令行中出现时使用的动作基本类型。nargs命令行参数应当消耗的数目。const被一些 action 和 nargs 选择所需求的常数。default当参数未在命令行中出现并且也不存在于命名空间对象时所产生的值。type命令行参数应当被转换成的类型。choices可用的参数的容器。required此命令行选项是否可省略 仅选项可用。help一个此选项作用的简单描述。metavar在使用方法消息中使用的参数值示例。dest被添加到 parse_args() 所返回对象上的属性名。
4parser.parse_args() 调用parse_args()方法进行解析 parse_args相关属性全部参数
属性解释默认值args要解析的字符串列表从 sys.argv 获取。namespace用于获取属性的对象一个新的空 Namespace 对象。
三. 具体使用
add_argument() 方法必须知道它是否是一个选项例如 -f 或 --foo或是一个位置参数。
第一个传递给 add_argument() 的参数必须是一系列旗标或者是一个简单的参数名。
当 parse_args() 被调用选项会以 - 前缀识别剩下的参数则会被假定为位置参数。
-横杠和 –双横杠都是用来表示命令行参数的前缀符号 -用来表示短参数Short options通常只有一个字符。 –用来表示长参数Long options通常是一个单词或短语。
在argparse中-和–可以用来定义命令行参数的简写和全名例如parser.add_argument(‘-n’, ‘–name’, help‘输入姓名’)
import argparseif __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(-n, --name, help输入姓名)args parser.parse_args()# 获得传入的参数print(args)带参执行结果
3.1 设置必需参数
add_argument方法的required参数可以设置该参数是否是必需。
如果该参数设置为必需参数程序执行时未指定该参数会报错
import argparseif __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--name, help输入姓名, requiredTrue)parser.parse_args()# 获得传入的参数print(args)# 获得指定的参数print(args.name)运行 python test.py 和 python test.py --name Elaine 结果 3.2 传一个参数
add_argument添加一个参数选项
import argparseif __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--name, help输入姓名)args parser.parse_args()# 获得传入的参数print(args)# 获得指定的参数print(args.name)运行程序 -h 看一下效果
D:\python test.py -h
usage: test.py [-h] [--name NAME]optional arguments:-h, --help show this help message and exit--name NAME 输入姓名带一个参数和带三个参数运行的结果 可以看到这种情形下传入三个参数会报错
3.3 传多个参数
1add_argument加上nargs参数nargs是用来说明传入的参数个数例如
import argparseif __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--name, nargs3, help输入姓名)args parser.parse_args()# 获得传入的参数print(args)# 获得指定的参数print(args.name)运行 python test.py --name Elaine 和 python test.py --name Elaine Elaine1 Elaine2 结果
2nargs为’’ 表示传入至少一个参数可以不用指定具体多少个参数例如
import argparseif __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--name, nargs, help输入姓名)args parser.parse_args()# 获得传入的参数print(args)# 获得指定的参数print(args.name)运行 python test.py --name Elaine 和 python test.py --name Elaine Elaine1 Elaine2 结果
3.4 位置参数和可选参数
add_argument() 方法必须知道它是否是一个选项例如 -f 或 --foo或是一个位置参数。 第一个传递给 add_argument() 的参数必须是一系列旗标或者是一个简单的参数名。 当 parse_args() 被调用选项会以 - 前缀识别剩下的参数则会被假定为位置参数。 1位置参数 add_argument第一个参数可以这么创建parser.add_argument(‘name’, help‘输入姓名’) 其中第一个参数可以是任何参数名但前面不要加 - 横杠或 –双横杠 这些参数是不带前缀的参数它们通常用于需要按特定顺序提供的参数且通常是必需的。
import argparseif __name__ __main__:parser argparse.ArgumentParser(description命令行中传入一个参数)parser.add_argument(name, help输入姓名)parser.add_argument(country, help国家)args parser.parse_args()# 获得传入的参数print(args)执行 python test.py Elaine China 和 python test.py China Elaine 结果 所以位置参数都是顺序的在命令行中传入参数时候传入的参数的先后顺序不同运行结果往往会不同
执行 python test.py Elaine 时缺少第二个位置参数会报错所以位置参数通常是必须的。例如
2可选参数 为了在命令行中避免上述位置参数的顺序混乱可以使用可选参数。这个很像关键词传参但是需要在关键词前面加- 例如
import argparseif __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--name, nargs, help输入姓名)parser.add_argument(--country, nargs, help国家名称)args parser.parse_args()# 获得传入的参数print(args)执行 python test.py --name Elaine Elaine1 Elaine2 和 python test.py --name Elaine Elaine1 Elaine2 --country China 结果 可选参数虽然写法比较繁琐但是增加了命令行中的可读性不容易因为参数传入顺序导致数据错乱。
3.5 参数设置默认值
add_argument加上default参数
import argparseif __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(-n, --name, help输入姓名)parser.add_argument(-c, --country, defaultChina, help国家名称)args parser.parse_args()# 获得传入的参数print(args)运行python test.py --name Elaine 和 python test.py 结果
3.6 其它用法
想要了解更多可以去看看官方文档 参考官方文档:https://docs.python.org/zh-cn/3.9/library/argparse.html#parents