【问题标题】:How to get list as an input from command line python? [duplicate]如何从命令行python获取列表作为输入? [复制]
【发布时间】:2019-05-08 11:30:34
【问题描述】:

我知道我们可以使用 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]]']

如您所见,我将它替换为'[5',而不是input_list[0] == 5,我现在输入的嵌套列表也不再嵌套。而不是input_list[3] ==[5,2]input_list[3] is equal to '[5'

我该怎么办?我需要按原样获取列表以便使用它。

【问题讨论】:

  • 可以 eval() 它,但我更建议您查看argparse 模块,看看是否可以帮助您。

标签: python string list


【解决方案1】:

试试这个:

import ast

input_list = ast.literal_eval(sys.argv[1])

那么输出将是

[5, 1, 6, [5, 2]]

【讨论】:

  • 请注意,您必须将参数作为显式字符串传递,例如 python myprogram.py "[5, 1, 6, [5, 2]]"
  • @BreakBB 是的,谢谢
  • 对幕后发生的事情的最小解释将有助于帮助 OP 进展恕我直言。但这存在于副本中
猜你喜欢
  • 2017-03-12
  • 1970-01-01
  • 2021-08-01
  • 2020-03-25
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多