gpt4 book ai didi

Python 命令行参数检查是否默认或给定

转载 作者:行者123 更新时间:2023-12-03 23:25:21 25 4
gpt4 key购买 nike

这是我的代码部分:

parser = argparse.ArgumentParser()
parser.add_argument('-a', action='store', dest='xxx', default = 'ABC')
parser.add_argument('-b', action='store', dest='yyy')
parser.add_argument('-c', action='store', dest='zzz')
args = parser.parse_args()

我希望代码像这样工作:

如果给出了 b 和 c,则执行 command2。否则,执行 command1

如果给出 -a 参数,则添加 -b 或 -c 会引发错误

我试过这种方式:
if args.xxx and (args.yyy or args.zzz):
parser.print_help()
sys.exit()

但它没有用,因为 '-a' 总是有一个默认值,我不能改变它。
我该如何解决?

最佳答案

这是一种方法:

# If option xxx is not the default, yyy and zzz should not be present.
if args.xxx != 'ABC' and (args.yyy or args.zzz):
# Print help, exit.

# Options yyy and zzz should both be either present or None.
if (args.yyy is None) != (args.zzz is None):
# Print help, exit.

# Earn our pay.
if args.yyy is None:
command2()
else:
command1()

您也可以考虑使用 usage pattern based on subcommands ,如用户 toine 的评论中所述。

关于Python 命令行参数检查是否默认或给定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25035109/

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