使用pyserial列出活动串行端口时执行

时间:2017-12-24 12:34:34

标签: python serial-port pyserial iterable

我是一名新的蟒蛇学习者。 我正试图用这个简单的代码列出我的活动串口

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

有人知道如何在没有此TypeError的情况下列出这些端口吗?

谢谢

2 个答案:

答案 0 :(得分:0)

根据documentation of pySerial main()实际上是一个文档化的函数,您可以使用它来获取所有端口的信息。请尝试使用comports()功能:

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

答案 1 :(得分:0)

如果只想打印端口号(例如COM1),请尝试使用comport对象的“设备”属性:

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