Python argparse 无法识别的参数
Python argparse unrecognized arguments
我正在尝试使用 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
我应该如何更改我的代码才能在参数列表中使用“=”?
根据 argparse documentation,在 nargs
参数中传递 *
意味着
All command-line arguments present are gathered into a list.
当您调用您的程序时 没有 等号,所有三个 IP 地址都被视为 --allow_ips
参数的一部分;它们将在列表中可供您的程序使用。
当您使用 等号 调用程序时,只有第一个 IP 地址被视为 --allow_ips
参数的一部分。 argparse
然后尝试解析第二个和第三个 IP 地址。但它不能,因为您的程序不接受任何位置参数。所以 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__':
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
我应该如何更改我的代码才能在参数列表中使用“=”?
根据 argparse documentation,在 nargs
参数中传递 *
意味着
All command-line arguments present are gathered into a list.
当您调用您的程序时 没有 等号,所有三个 IP 地址都被视为 --allow_ips
参数的一部分;它们将在列表中可供您的程序使用。
当您使用 等号 调用程序时,只有第一个 IP 地址被视为 --allow_ips
参数的一部分。 argparse
然后尝试解析第二个和第三个 IP 地址。但它不能,因为您的程序不接受任何位置参数。所以 argparse
引发异常。