我想通过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。
答案 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)
否则会引发另一个错误。