在Python中解析命令行参数:可变长度的数组?

时间:2014-03-26 09:48:54

标签: python arrays python-2.7 command-line-arguments dynamic-arrays

是否可以在Python中创建一个可变长度的数组?

当我启动程序时,我从sys.argv得到不同类型的长度,只要sys.argv中的字符串是,我需要尽可能多的数组字段。

编辑以便更好地理解:

我编写了一个可以控制Raspberry Pi的GPIO端口的python脚本

到目前为止,该脚本只能同时控制一个端口。执行顺序如下:

sudo python /home/pi/Desktop/IO2.py #Port #State (Like high or low)

如果我想控制端口5并将其设置为高,则看起来像这样:

sudo python /home/pi/Desktop/IO2.py 5 high

但是现在,我想控制更多的端口而不仅仅是一个端口。看起来应该是这样的:

sudo python /home/pi/Desktop/IO2.py 1,4,7,11 high

港口1,4,7,11现在很高。

2 个答案:

答案 0 :(得分:1)

这是XY问题的典型例子。

你的问题与python数组甚至python列表关系不大,更多的是如何从命令行参数中检索选项列表。为此,您应该使用argparse而不是尝试手动解析sys.argv

答案 1 :(得分:0)

您可以像这样创建一个新的空数组:

a = ["Default value"] * length

"Default value"是您希望在每个空格中拥有的值(显然可以重新分配这些值),而length是您从sys.argv获得的长度

但是,因为您可以轻松地从数组中添加和删除元素,您可能想要重新设计您的设计?