argparse - 带有列表/元组的可选参数

4
我有几个可选参数,其中一个需要存储多个值-即其类型既不是字符串也不是整数。argparse支持其他类型的可选参数吗?
例如,我希望这个命令:
>>> python example1 test_project --name try1 3

相当于这样的代码:

args.name = {'try1', '3'}

这是可能的吗?或者我是否被迫使用action='store_true',然后提示用户提供更多信息,如果他选择了这个选项?
1个回答

7
我真的很难理解你的问题。这是你想要的吗?
import argparse

parser=argparse.ArgumentParser()
parser.add_argument('--name',nargs='*',action='store')

print(parser.parse_args('--name try1 3'.split())) #Namespace(name=['try1', '3'])

如果不是这样,请尝试更清楚地说明您希望argparse做什么,以及您已经能够做到什么。

1
@mgilson @Gil.I Gil,根据标题、您接受此答案的情况以及您使用 nargs *,我猜测您想要做的是从命令行收集多个参数并将它们全部存储在 name 中?我还猜测您在原始问题中输入 -name 时只有一个 - 是打字错误?基于这些猜测,我已经对原始问题进行了大量的编辑,试图使其更清晰明了。请告诉我您的想法。 - culix
@mgilson,现在问题已经清晰了,我已经更新了答案。希望这样可以。 - culix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接