Python argparse 组合标志和变量

2023-12-09

我希望能够为我的程序指定一个选项,该选项既充当标志又充当变量。例如: 我有一个名为“--logging”的论点。如果未指定此参数,我希望将其设置为 false (即 action='store_true'),但如果指定了该参数,我想做两件事。 1)我想设置默认路径“./log_file.log”,2)我想允许用户指定不同的日志文件位置。


是的,所以我为此提出了自己的解决方案。它依赖于 nargs。首先是代码:

#!/usr/bin/python
# example.py
import argparse

parser = argparse.ArgumentParser(description="Example of a single flag acting as a boolean and an option.")
parser.add_argument('--foo', nargs='?', const="bar", default=False)
args = parser.parse_args()

if args.foo:
  print args.foo
else:
  print "Using the default, boolean False."

鉴于该示例,以下是我们在三种可能情况下使用它时会发生的情况:

> ./example.py
  Using the default, boolean False.
> ./example.py --foo
  bar
> ./example.py --foo baz
  baz

希望以上内容是不言自明的。如果不是,那么 nargs='?' 是怎么回事?如果未指定标志,则将使用“默认”值(在我们的例子中为布尔值 False);如果指定标志时不带参数,则使用 const 值;如果使用参数指定标志,则使用参数。请注意不要在 False 周围添加任何引号; False 是内置类型(布尔值),“False”或“False”将评估为 true。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python argparse 组合标志和变量 的相关文章

随机推荐