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

标签 python argparse iterable

我需要使用 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 程序 --example first_arg second_arg 时,我得到了预期的结果:

first_arg
second_arg

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

d
e
f
a
u
l
t
_
v
a
l
u
e

我需要遍历列表而不考虑它有多少元素,我该如何解决这个问题?提前谢谢你。

最佳答案

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

argparser.add_argument(
    '--example',
    nargs='*',
    default=['default_value'],
    type=str)

关于python - 如何强制 argparse 返回字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59059700/

相关文章:

python - 如何获得ipython并行处理的中间结果?

python - numpy 中的数组扩展

javascript - 为什么我们必须用 [Symbol.iterator] 定义 Symbol.iterator ? javascript 中的可迭代对象?

python - "Pythonic"只要基于前一个元素的条件为真,就可以从可迭代对象中返回元素

Python 增量填充 x 和 y 值

python - 如何在 Vim 中一次注释选定的代码块?

python - 如何在 Python 2.6 中获取 argparse?

python - argparse add_argument 别名

python - 如何通过分解两个非常相似的类来为 Argparse 传递类中的参数

java - 具有泛型的 Java 中的 LinkedList 实现并增强了