gpt4 book ai didi

结合标志和变量的 Python argparse

转载 作者:太空狗 更新时间:2023-10-30 02:33:55 25 4
gpt4 key购买 nike

我希望能够为我的程序指定一个选项,它既充当标志又充当变量。例如:我有一个名为“--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='?' 是怎么回事?如果未指定标志(在我们的例子中为 bool 值 False),将使用“默认”值,如果在没有参数的情况下指定标志,则使用 const 值,如果使用参数指定标志,则使用参数。注意不要在 False 周围加上任何引号; False 是内置类型( bool 值),“False”或“False”将评估为 true。

关于结合标志和变量的 Python argparse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11119983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com