Python 可以在pyserial中创建serial.serial()的多个实例吗?

Python 可以在pyserial中创建serial.serial()的多个实例吗?,python,serial-port,pyserial,Python,Serial Port,Pyserial,我试图创建的函数查找负责AT命令的调制解调器端口。我试图使serial.serial()的不同实例成为不同循环的本地实例。我在我能找到的文档中查找信息,但我找到的文档中没有任何一个以任何方式提到这一点(如果它在某个地方,我错过了它,请随意让我看起来愚蠢并链接它)。例如: OpenPorts = [] j=[] for modem in PortList: #This opens every Modem for port in mo

我试图创建的函数查找负责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()。有没有这样做的方法,或者是返回到绘图板?

而不是存储端口:

j.append(port)
为什么不附加
ser
实例,以便以后可以这样使用:

j.append(ser

之后,您可以通过以下方式将其全部关闭:

for ser in OpenPorts:
       ser.close()

OpenPorts是一个列表列表。。。是这样吗?也许你真正想做的是
OpenPorts.extend(j)
,而不是
OpenPorts.append(j)
?序列号。序列号不能作为第一个参数使用。啊,这是我的问题。我需要它是一个列表的另一个原因,但我知道我可以修复它。如果你把它作为一个答案,我会接受的。谢谢。我在这个项目上走得更远了,这就是我解决问题的方法。所以我会接受它,因为它是正确的解决方案。
for ser in OpenPorts:
       ser.close()