Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用argparseu args在python中将参数解析为字符串?_Python_Argparse - Fatal编程技术网

如何使用argparseu args在python中将参数解析为字符串?

如何使用argparseu args在python中将参数解析为字符串?,python,argparse,Python,Argparse,我的原始代码如下所示,可以很好地处理命令行调用。但是,有没有一种方法可以在Python中将参数列表解析为字符串 例如: parser = argparse.ArgumentParser() parser.parse_args() 你打电话: python test.py <args like --a 1 --b 2 ...> python test.py 那么,如果我有一个字符串s,它是上面的args列表,有什么方法可以解析它吗?您可以将该字符串拆分为一个列表,并将其传递给pa

我的原始代码如下所示,可以很好地处理命令行调用。但是,有没有一种方法可以在Python中将参数列表解析为字符串

例如:

parser = argparse.ArgumentParser()
parser.parse_args()
你打电话:

python test.py <args like --a 1 --b 2 ...>
python test.py

那么,如果我有一个字符串
s
,它是上面的
args
列表,有什么方法可以解析它吗?

您可以将该字符串拆分为一个列表,并将其传递给
parse_args

parser.parse_args(s.split())
或者,如果字符串包含类似shell的语法,如引号和转义字符,请使用
shlex.split
拆分字符串:

import shlex
parser.parse_args(shlex.split(s))

谢谢我得到一个类似这样的错误:ArgumentError:argument--data\u dir:冲突选项字符串:--data\u dir,其中
data\u dir
是我定义的参数之一。您有什么想法吗?您定义的另一个选项与
--data\u dir
具有相同的前缀,因此它被认为是冲突的。您可以通过将选项命名为其他名称来解决此问题。