栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Python中将整个列表作为命令行参数传递?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Python中将整个列表作为命令行参数传递?

命令行参数始终以字符串形式传递。您将需要自己将它们解析为所需的数据类型。

>>> input = "[2,3,4,5]">>> map(float, input.strip('[]').split(','))[2.0, 3.0, 4.0, 5.0]>>> A = map(float, input.strip('[]').split(','))>>> print(A, type(A))([2.0, 3.0, 4.0, 5.0], <type 'list'>)

有像argparse和click这样的库,可以让您定义自己的参数类型转换,但

argparse
"[2,3,4]"
其视为相同,
[

2
,
3
,
4
]
因此我怀疑它是否有用。

编辑Jan 2019 这个答案似乎仍然有一些行动,所以我将直接从argparse文档中添加另一个选项。

您可以

action=append
用来允许将重复的参数收集到一个列表中。

>>> parser = argparse.ArgumentParser()>>> parser.add_argument('--foo', action='append')>>> parser.parse_args('--foo 1 --foo 2'.split())Namespace(foo=['1', '2'])

在这种情况下,您将为

--foo ?
每个列表项传递一次。使用OP示例:
python filename.py --foo 2 --foo 3 --foo4 --foo 5
将导致
foo=[2,3,4,5]



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/641136.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号