gpt4 book ai didi

python - 如何在 Python 中使用 argparse.ArgumentParser 从命令行传递和解析字符串列表?

转载 作者:太空狗 更新时间:2023-10-29 22:12:29 25 4
gpt4 key购买 nike

我想从控制台将名称列表传递到我用 Python 编写的程序中。例如,我想使用与此类似的方式(我知道它不应该因为 bash 而起作用):

$ python myprog.py -n name1 name2

所以,我尝试了这段代码:

# myprog.py

from argparse import ArgumentParser

parser = ArgumentParser()
parser.add_argument('-n', '--names-list', default=[])
args = parser.parse_args()

print(args.names_list) # I need ['name1', 'name2'] here

这导致了错误:

usage: myprog.py [-h] [-n NAMES_LIST]
myprog.py: error: unrecognized arguments: name2

我知道我可以传递带有引号的名称 "name1 name2" 并在我的代码 args.names_list.split() 中拆分它。但我很好奇,是否有更好的方法通过 argparse 模块传递字符串列表。

如有任何想法,我们将不胜感激。

谢谢!

最佳答案

您需要定义 --names-list 以获取任意数量的参数。

parser.add_argument('-n', '--names-list', nargs='+', default=[])

请注意,具有任意数量参数的选项通常不能很好地处理位置参数,但是:

# Is this 4 arguments to -n, or
# 3 arguments and a single positional argument, or ...
myprog.py -n a b c d

关于python - 如何在 Python 中使用 argparse.ArgumentParser 从命令行传递和解析字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43786174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com