使用 pyserial 列出活动串口时出现异常

Exeption while listing active serial ports using pyserial

我是 python 新手。 我正在尝试使用这个简单的代码列出我的活动串口

import serial.tools.list_ports as port_list
ports = list(port_list.main())
for p in ports:

    print (p)

这是结果

C:\Python27\python.exe C:/Users/tc34669/PycharmProjects/untitled/open_serial_port.py
COM1                
COM3                
2 ports found
Traceback (most recent call last):
File "C:/Users/tc34669/PycharmProjects/untitled/open_serial_port.py", line 2, in <module>
ports = list(port_list.main())
TypeError: 'NoneType' object is not iterable

这里有人知道我如何列出这些端口而不会出现此类型错误?

感谢

根据 documentation of pySerial main() 实际上并不是一个可用于获取所有端口信息的文档化函数。尝试使用 comports() 函数代替:

from serial.tools import list_ports
for p in list_ports.comports():
    print(p)

如果您只想打印端口号(例如 COM1),请尝试使用 comport 对象 'device' 属性:

from serial.tools import list_ports
for p in list_ports.comports():
    print(p.device)