argparse——命令行选项、参数和子命令解析器
模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数,然后 将弄清如何从 解析出那些参数。 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。
一、创建一个解析器
使用 的第一步是创建一个 对象:
1、ArgumentParser()的方法
2、示例
>>> parser = argparse.ArgumentParser()
对象包含将命令行解析成 Python 数据类型所需的全部信息。
二、添加参数
给一个 添加程序参数信息是通过调用 方法完成的
1、add_argument()方法
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
-
- 一个命名或者一个选项字符串的列表,例如 foo 或 -f, --foo。第一个传递给 的参数必须是一系列 flags 或者是一个简单的参数名。当 被调用,选项会以 - 前缀识别,剩下的参数则会被假定为位置参数。 parser.add_argument(-f, --foo) - 当参数在命令行中出现时使用的动作基本类型。 store - 存储参数的值。这是默认的动作 store_const - 存储被 命名参数指定的值。 store_const 动作通常用在选项中来指定一些标志 >>> parser.add_argument(--foo, action=store_const, const=42) >>> parser.parse_args([--foo]) Namespace(foo=42) store_true and store_false - 这些是 store_const 分别用作存储 True 和 False 值的特殊用例。另外,它们的默认值分别为 False 和 True append - 存储一个列表,并且将每个参数值追加到列表中。在允许多次使用选项时很有用。 append_const - 这存储一个列表,并将 命名参数指定的值追加到列表中。(注意 命名参数默认为 None。)``append_const`` 动作一般在多个参数需要在同一列表中存储常数时会有用 count - 计算一个关键字参数出现的数目或次数 extend - 这会存储一个列表,并将每个参数值加入到列表中 - 命令行参数应当消耗的数目。 - 被一些 和 选择所需求的常数。 - 当参数未在命令行中出现并且也不存在于命名空间对象时所产生的值。 - 命令行参数应当被转换成的类型。 - 可用的参数的容器。 - 此命令行选项是否可省略 (仅选项可用)。 - 一个此选项作用的简单描述。 - 在使用方法消息中使用的参数值示例。 - 被添加到 所返回对象上的属性名。
2、示例
>>> parser.add_argument(integers, metavar=N, type=int, nargs=+, ... help=an integer for the accumulator) >>> parser.add_argument(--sum, dest=accumulate, action=store_const, ... const=sum, default=max, ... help=sum the integers (default: find the max))
三、解析参数
1、parse_args()方法
ArgumentParser.parse_args(args=None, namespace=None)
将参数字符串转换为对象并将其设为命名空间的属性。 返回带有成员的命名空间。
-
- 要解析的字符串列表。 默认值是从 获取。 - 用于获取属性的对象。 默认值是一个新的空 对象。
2、示例
>>> parser = argparse.ArgumentParser(prog=PROG) >>> parser.add_argument(-x) >>> parser.add_argument(--foo) >>> parser.parse_args([-x, X]) Namespace(foo=None, x=X) >>> parser.parse_args([--foo, FOO]) Namespace(foo=FOO, x=None)
上一篇:
JS实现多线程数据分片下载
下一篇:
YOLOX训练自己的VOC数据集