gpt4 book ai didi

Python 参数解析 : Leading dash in argument

转载 作者:行者123 更新时间:2023-11-28 20:57:37 24 4
gpt4 key购买 nike

我正在使用 Python 的 argparse解析命令行参数的模块。考虑以下简化示例,

# File test.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-s', action='store')
parser.add_argument('-a', action='append')
args = parser.parse_args()
print(args)

这样可以成功调用like

python test.py -s foo -a bar -a baz

-s和每个-a之后需要一个参数,如果我们使用引号,它可能包含空格。但是,如果参数以破折号 (-) 开头且不包含任何空格,则代码会崩溃:

python test.py -s -begins-with-dash -a bar -a baz

error: argument -s: expected one argument

我知道它将 -begins-with-dash 解释为新选项的开始,这是非法的,因为 -s 尚未收到其所需的参数。尽管没有定义名称为 -begins-with-dash 的选项,但它也很清楚,因此它不应该首先将其解释为选项。如何让 argparse 接受带有一个或多个前导破折号的参数?

最佳答案

您可以通过包含等号来强制 argparse 将参数解释为值:

python test.py -s=-begins-with-dash -a bar -a baz
Namespace(a=['bar', 'baz'], s='-begins-with-dash')

关于Python 参数解析 : Leading dash in argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636309/

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