python - 如何从命令行python获取列表作为输入?
问题描述
我知道我们可以使用 sys.argv,但我对此有疑问。
我想传递一个列表作为参数:
Example [5,1,6,[5,2]]
这是一个嵌套列表,我想按原样将其作为输入。
python myprogram.py [5,1,6,[5,2]]
这是我的程序:
import sys;
input_list = sys.argv[1].split(',')
print(input_list)
我确实获得了列表,但是如果我输出它,它在结构上是完全错误的:
['[5', '1', '6', '[5', '2]]']
正如你所看到的,而不是input_list[0] == 5
,我有它等于'[5'
,我现在输入的嵌套列表也不再嵌套。而不是input_list[3] ==[5,2]
, input_list[3] is equal to '[5'
。
我应该怎么办?我需要按原样获取列表以便使用它。
解决方案
尝试这个:
import ast
input_list = ast.literal_eval(sys.argv[1])
那么输出将是
[5, 1, 6, [5, 2]]
推荐阅读
- android-studio - 在 Gradle 插件任务中获取 PsiFile
- image - 彩色图像像素排列不可逆
- php - codeigniter:在其他页面看不到我的成功消息
- php - PLS 帮助 PHP 语法
- spring-boot - Thymeleaf 为 th 处理 URL 中的外键:PUT 请求的操作
- reactjs - Material UI:从 TextView 中删除向上/向下箭头拨盘
- elasticsearch - elastic search function_score查询性能
- python - 跟随第二个请求的链接 - 网络爬虫
- javascript - 在 JQuery Ajax 调用之后将 JSON 数据从 PHP 附加到脚本
- ruby-on-rails - 通过 JSON 使用 db 数据生成 Google 地图标记