如何解决Python argparse - 从 cmdline 中读取引号内的多个字符串
我正在尝试解析不确定数量的命令行参数,但它们可能以空格分隔。所以对于例如
./program.py "IBM US Equity" "FB US Equity"
应该返回一个包含两个元素的参数列表
["IBM US Equity","FB US Equity"]
然而我最终得到的是
["IBM","US","Equity","FB","Equity"]
有没有办法告诉 argparse 将引号内的字符串视为一个参数?我正在使用
nargs='+'
这是定义我的 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 文件运行并传递您的字符串即可。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。