gpt4 book ai didi

python - 在Python中解析参数

转载 作者:行者123 更新时间:2023-12-01 04:12:41 25 4
gpt4 key购买 nike

我遇到了一个问题,正在寻找解决方案。我不确定是否可以使用 argparse 来做到这一点。

我希望能够指定一个选项

myprog -a 1
myprog -a 2

现在,当我有 a = 1 时,我希望能够指定 bc。但是当a = 2时,我只能指定d

myprog -a 1 -b 3 -c 0
myprog -a 2 -d 3

此外,必须始终指定a

最佳答案

您无法将切换值作为单个 parse_args 调用来执行此操作,但您可以执行以下操作之一:

  1. 使用sub-commands/sub-parsers
  2. 在完全配置解析器并在完整命令行上运行之前进行部分解析,首先仅检查 a,然后根据第一次调用的结果选择其他解析器参数进行解析。诀窍是使用 parse_known_args对于第一次调用,因此它处理 a (它可以识别)并忽略其他所有内容。

例如,对于方法#2,您可以这样做:

parser = argparse.ArgumentParser()
parser.add_argument('-a', required=True, type=int, choices=(1, 2)
args = parser.parse_known_args()

if args.a == 1:
parser.add_argument('-b', ...)
parser.add_argument('-c', ...)
args = parser.parse_args()
else:
parser.add_argument('-d', ...)
args = parser.parse_args()

这种方法的缺点是,因不正确的使用而吐出的使用信息将不完整;您必须手动在基本解析器中包含指定“真实”用法的文本,这并不有趣。子解析器无法根据值切换进行切换,但它们具有统一、连贯的使用显示。

关于python - 在Python中解析参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689279/

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