Python argparse -从cmdline中读取引号内的多个字符串



我试图解析命令行参数的无限数量,但它们可能是空格分隔。例如

./program.py "IBM US Equity" "FB US Equity" 

应该返回一个包含两个元素的参数列表

["IBM US Equity", "FB US Equity"]

但是我最终得到的是

["IBM", "US", "Equity", "FB", "US", "Equity"]

是否有一种方法告诉argparse将引号内的字符串视为一个参数?我正在使用

娜戈= ' + '

这里是我的args模式定义的yaml:

args:
ticker_list:
help: Compute result for list of tickers entered after this. All tickers must
be in quotation delimited strings, e.g. "IBM US Equity"
nargs: '+'
metavar: ticker

下面是我如何在阅读yaml后将其添加到argparse:


with open("reg_test_config.yml") as in_file:
params = yaml.safe_load(in_file)
for name, configs in params.pop("args").items():
parser.add_argument(name, **configs)

您可以使用下面的代码来获取:

import sys
all_inputs = [sys.argv[1], sys.argv[2]]
print(all_inputs)

在终端中以python文件的形式运行上述代码,并传递字符串。

相关内容

  • 没有找到相关文章

最新更新