小编典典

在python中将列表指定为命令行参数

python

我正在使用getopt处理命令行可选参数,该参数应接受列表。像这样:

foo.py --my_list=[1, 2, 3, 4,5]

但这会修剪“ [1,”之后的所有内容

我的问题是:A)有没有一种方法可以指定列表而不将其转换为字符串?(使用getopt)

B)如果我要将列表转换成字符串,如何将这个列表转换成字符串?例如像mylist.split(“?”)这样的东西可以消除方括号?有没有更好的办法?

谢谢


阅读 302

收藏
2020-12-20

共1个答案

小编典典

我可以想到两种选择:

  • 使用optparse,然后使用appendaction来指定要执行的操作:foo.py --my_list=1 --my_list=2 ...
  • 将命令行指定为foo.py --my_list='1,2,3,4,5',然后用于x.split(',')在列表中获取值。您可以使用getoptoptparse用于此方法。

第一种方法的优点是,您可以直接在列表中获取整数值,但会浪费命令行的时间(但是如果需要,可以添加单字符选项--my_list)。第二个优势是更短的命令行,但之后split(),你需要将字符串值转换'1''2'等等,为整数(很容易为好)。

2020-12-20