如何强制 argparse 到 return 字符串列表?
How to force argparse to return a list of strings?
我需要使用 argparse 从命令行接受可变数量的字符串,但是当我传递零参数时,我得到一个字符串作为结果,而不是一个字符串列表。
argparser = argparse.ArgumentParser()
argparser.add_argument(
'--example',
nargs='*',
default='default_value',
type=str)
args = argparser.parse_args()
for e in args.example:
print(e)
执行此 python program --example first_arg second_arg
时,我得到了预期的结果:
first_arg
second_arg
即使有一个参数,一切都很好,但是执行此 python program
我得到:
d
e
f
a
u
l
t
_
v
a
l
u
e
我需要遍历列表而不考虑它有多少元素,我该如何解决这个问题?提前谢谢你。
将默认值设置为列表而不是字符串:
argparser.add_argument(
'--example',
nargs='*',
default=['default_value'],
type=str)
您的默认值是 str
,可以在 python 中迭代,您可以将默认值更改为这样的列表:
argparser.add_argument(
'--example',
nargs='*',
default=['default_value'],
type=str)
我需要使用 argparse 从命令行接受可变数量的字符串,但是当我传递零参数时,我得到一个字符串作为结果,而不是一个字符串列表。
argparser = argparse.ArgumentParser()
argparser.add_argument(
'--example',
nargs='*',
default='default_value',
type=str)
args = argparser.parse_args()
for e in args.example:
print(e)
执行此 python program --example first_arg second_arg
时,我得到了预期的结果:
first_arg
second_arg
即使有一个参数,一切都很好,但是执行此 python program
我得到:
d
e
f
a
u
l
t
_
v
a
l
u
e
我需要遍历列表而不考虑它有多少元素,我该如何解决这个问题?提前谢谢你。
将默认值设置为列表而不是字符串:
argparser.add_argument(
'--example',
nargs='*',
default=['default_value'],
type=str)
您的默认值是 str
,可以在 python 中迭代,您可以将默认值更改为这样的列表:
argparser.add_argument(
'--example',
nargs='*',
default=['default_value'],
type=str)