gpt4 book ai didi

python - 如何使用 argparse 解析带有前导减号(负数)的位置参数

转载 作者:IT老高 更新时间:2023-10-28 21:08:57 28 4
gpt4 key购买 nike

我想解析一个必需的位置参数,其中包含一个以逗号分隔的整数列表。如果第一个整数包含前导减号 ('-'),则 argparse 会报错:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('positional')
parser.add_argument('-t', '--test', action='store_true')
opts = parser.parse_args()
print opts

$ python example.py --test 1,2,3,4
Namespace(positional='1,2,3,4', test=True)

$ python example.py --test -1,2,3,4
usage: example.py [-h] [-t] positional
example.py: error: too few arguments

$ python example.py --test "-1,2,3,4"
usage: example.py [-h] [-t] positional
example.py: error: too few arguments

我看到有人建议使用除 - 之外的其他字符作为标志字符,但我宁愿不这样做。是否有另一种方法可以配置 argparse 以允许 --test-1,2,3,4 作为有效参数?

最佳答案

您需要在命令行参数中插入 --:

$ python example.py --test -- -1,2,3,4
Namespace(positional='-1,2,3,4', test=True)

双破折号停止 argparse 寻找更多可选开关;这是处理命令行工具这个用例的事实上的标准方法。

关于python - 如何使用 argparse 解析带有前导减号(负数)的位置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14693718/

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