我正在使用getopt处理命令行可选参数,该参数应接受列表。像这样:
foo.py --my_list=[1, 2, 3, 4,5]
但这会修剪“ [1,”之后的所有内容
我的问题是:A)有没有一种方法可以指定列表而不将其转换为字符串?(使用getopt)
B)如果我要将列表转换成字符串,如何将这个列表转换成字符串?例如像mylist.split(“?”)这样的东西可以消除方括号?有没有更好的办法?
谢谢
我可以想到两种选择:
append
foo.py --my_list=1 --my_list=2 ...
foo.py --my_list='1,2,3,4,5'
x.split(',')
getopt
optparse
第一种方法的优点是,您可以直接在列表中获取整数值,但会浪费命令行的时间(但是如果需要,可以添加单字符选项--my_list)。第二个优势是更短的命令行,但之后split(),你需要将字符串值转换'1','2'等等,为整数(很容易为好)。
--my_list
split()
'1'
'2'