我希望能够为我的程序指定一个选项,该选项既充当标志又充当变量。例如:
我有一个名为“--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(使用前将#替换为@)