Python ArgumentParser-添加默认为无的列表?
我尝试使用参数解析器将参数列表添加到程序中。如果参数已设置,则可以正常工作,但如果参数为“空”,则列表将设置为空 我的问题是,脚本是由jenkins调用的,因此argents变量会自动设置为list或nothing 詹金斯的电话看起来像: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
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()