我正在尝试创建的功能找到负责 AT 命令的调制解调器的端口。我正在尝试使不同的 serial.Serial() 实例成为不同循环的本地。我查看了我可以找到的文档以获取信息,但我发现的文档中没有一个以任何方式提到这一点(如果它在某个地方并且我错过了它,请随时让我看起来很愚蠢并链接它)。例如:
OpenPorts = []
j=[]
for modem in PortList: #This opens every Modem
for port in modem:
try:
j=[]
print port
ser = serial.Serial(port, 9600, timeout=1)
ser.close()
ser.open()
j.append(port)
except serial.SerialException:
continue
OpenPorts.append(j)
print OpenPorts
del j
del ser
这样可行。但是当我尝试这个时:
for port in OpenPorts:
if port is not '':
ser = serial.Serial(port, 9600, timeout=1)
ser.write('ati')
del ser
我得到'TypeError:只能将列表(不是“int”)连接到列表'
我需要将它们保持在循环的本地,因为我正在从一组正在使用的端口列表中打开多个端口(从另一个文件收集)。我必须使用多个循环,因为我需要在 ser.read() 返回任何内容之前使用 time.sleep()。有没有办法以这种方式做到这一点,还是回到绘图板上?