如何强制 argparse 返回字符串列表?

Nic*_*lli 3 python iterable argparse

我需要使用 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)
Run Code Online (Sandbox Code Playgroud)

执行此操作时python program --example first_arg second_arg我得到预期结果:

first_arg
second_arg
Run Code Online (Sandbox Code Playgroud)

即使只有一个参数,一切都很好,但是执行这个python program我得到:

d
e
f
a
u
l
t
_
v
a
l
u
e
Run Code Online (Sandbox Code Playgroud)

我需要迭代列表而不考虑它有多少元素,我该如何解决这个问题?先感谢您。

Cod*_*ice 5

将默认值设置为列表而不是字符串:

argparser.add_argument(
    '--example',
    nargs='*',
    default=['default_value'],
    type=str)
Run Code Online (Sandbox Code Playgroud)