在Python中将整数从argv传递到数组中

时间:2014-12-02 13:30:05

标签: python arrays

我想通过sys.argv将一些整数值传递给数组,但是我得到了一个TypeError。 如何从argv列表中将整数传递到我的数组中?我必须做一个明确的转换吗?

#!/usr/bin/python
from array import array
import serial, sys

ser = serial.Serial('/dev/ttyACM0', 9600)
a=array('i',(0 for i in range(1, 3)))

a.append(sys.argv[1])
a.append(sys.argv[2])
a.append(sys.argv[3])

print(a.range(0-2))

这是错误:

$ ./a.py 2 3 4
Traceback (most recent call last):
  File "./a.py", line 8, in <module>
    a.append(sys.argv[1])
TypeError: an integer is required

我得到的数组('i')是一个int数组,而sys.argv是一个列表项。 我只是不知道如何让sys.argv成为一个int。

1 个答案:

答案 0 :(得分:2)

替换:

a.append(sys.argv[1])
a.append(sys.argv[2])
a.append(sys.argv[3])

使用:

a.append(int(sys.argv[1]))
a.append(int(sys.argv[2]))
a.append(int(sys.argv[3]))

和此:

print(a.range(0-2))

使用:

print(a[0:2]) # or print(a) 

否则会引发另一个错误。