Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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
Python ArgumentParser-添加默认为无的列表?_Python_Python 3.x - Fatal编程技术网

Python ArgumentParser-添加默认为无的列表?

Python ArgumentParser-添加默认为无的列表?,python,python-3.x,Python,Python 3.x,我尝试使用参数解析器将参数列表添加到程序中。如果参数已设置,则可以正常工作,但如果参数为“空”,则列表将设置为空 我的问题是,脚本是由jenkins调用的,因此argents变量会自动设置为list或nothing 詹金斯的电话看起来像: test.py -list1=1,2,3 -list2= 结果是: list1 is = [1,2,3] 及 我的语法分析器代码: parser.add_argument('-list1', nargs='*', default=None, help="l

我尝试使用参数解析器将参数列表添加到程序中。如果参数已设置,则可以正常工作,但如果参数为“空”,则列表将设置为空

我的问题是,脚本是由jenkins调用的,因此argents变量会自动设置为list或nothing

詹金斯的电话看起来像:

test.py -list1=1,2,3 -list2=
结果是:

list1 is = [1,2,3]

我的语法分析器代码:

parser.add_argument('-list1', nargs='*', default=None, help="list")
parser.add_argument('-list2', nargs='*', default=None, help="list")
args = parser.parse_args()

我需要一种方法将list2设置为None,这样我就可以检查list2是否已设置。

您可以检查list2以查看其中是否包含任何内容-我从您发布的示例中假设,如果没有传递参数,则其中唯一的内容将是空字符串。如果对空/仅限空白字符串调用
str.strip()
,它将返回空字符串,这是错误的

From:
如果没有(列表2中s的s.strip):列表2=None

您确实为列表2提供了一个值;您提供了空字符串<仅当命令行中完全没有
--list2
时,才使用code>default。此外,您为
args.list1
获得的列表是单元素列表
['1,2,3']
,而不是像
[1,2,3]
['1',2',3']
那样的三元素列表
nargs='*'
表示您可以为
--list1
指定多个参数,而不是它将为您解析逗号分隔的参数。
parser.add_argument('-list1', nargs='*', default=None, help="list")
parser.add_argument('-list2', nargs='*', default=None, help="list")
args = parser.parse_args()