Python argparse无法识别的参数

Python argparse无法识别的参数,python,argparse,Python,Argparse,我试图使用argparse解析命令行参数。这是我的密码: #!/usr/bin/python # -*- coding: UTF-8 -*- import argparse def create_parser(): parser = argparse.ArgumentParser() parser.add_argument('--allow_ips', nargs='*') return parser if __name__ == '__main__': pa

我试图使用
argparse
解析命令行参数。这是我的密码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import argparse

def create_parser():
    parser = argparse.ArgumentParser()
    parser.add_argument('--allow_ips', nargs='*')
    return parser

if __name__ == '__main__':
    parser = create_parser()
    namespace = parser.parse_args()
像这样执行脚本时,
argparse
会抱怨无法识别的参数

./prog.py --allow_ips=192.168.0.10 192.168.0.11 192.168.0.12
但是当脚本像这样执行时,
argparse
就满足了

./prog.py --allow_ips 192.168.0.10 192.168.0.11 192.168.0.12
我应该如何更改代码以便在参数列表中使用“=”?

根据,在
nargs
参数中传递
*
意味着

所有存在的命令行参数都收集到一个列表中

当您在没有等号的情况下调用程序时,所有三个IP地址都被视为
--allow_ips
参数的一部分;它们将在列表中提供给您的程序


使用等号调用程序时,只有第一个IP地址被视为
--allow_ips
参数的一部分
argparse
然后尝试解析第二个和第三个IP地址。但它不能,因为您的程序不接受任何位置参数。因此,
argparse
引发了一个异常。

谢谢。在我的例子中,参数被传递给bash脚本(入口点)。我发现IP地址列表中的引号丢失了。我遍历了循环中的参数,添加了引号并将其写在一行中,然后将其作为参数传递给python上的程序。对不起,我的英语不行。相关文档部分:(
单个命令行参数,
)无关:解析您可以使用的ip地址