Python中的Pyserial(列出不带for循环的可用组件)
您可以遍历列表并获取名称:Python中的Pyserial(列出不带for循环的可用组件),python,port,python-3.5,pyserial,Python,Port,Python 3.5,Pyserial,您可以遍历列表并获取名称: import serial.tools.list_ports ports = serial.tools.list_ports.comports() available_ports = [] for p in ports: available_ports.append(p.device) print(available_ports) comports()方法返回ListPortInfo对象 然后,您可以访问此类的一组属性以获得所需的结果: name:
import serial.tools.list_ports
ports = serial.tools.list_ports.comports()
available_ports = []
for p in ports:
available_ports.append(p.device)
print(available_ports)
comports()
方法返回ListPortInfo
对象
然后,您可以访问此类的一组属性以获得所需的结果:
:短设备名称,例如name
ttyUSB0
:完整的设备名称/路径,例如device
/dev/ttyUSB0
import serial.tools.list_ports
ports = serial.tools.list_ports.comports()
print([port.name for port in ports])
报表打印
ports = [p.name for p in comports()]
在Windows 10中(使用python 3.61+pyserial v3.4)。改为
port=[p.device for p in comports()]
获取有效的端口名
[None, None, None, None]
作为一个稍微令人讨厌的黑客,comports()返回的对象是一个生成器。您只需通过强制转换即可获得列表(在本例中为列表列表或二维表):
['COM1', 'COM2', 'COM5', 'COM6']
但是,如果您只需要名称,您仍然需要提取列,因此上述解决方案更好。谢谢!!我只是不知道如何访问对象中的其他信息,我不知道我可以通过port.name访问name。我想你解决了我的问题,但我身上没有设备,我无法测试。在Windows上,我不得不使用
端口.设备
,因为端口.名称
是空的。谢谢!我已经读过几遍了,但我不知道如何获取具体信息。我想等明天我有了设备,我就能解决我的问题了。谢谢@abe很乐意帮忙!!
[None, None, None, None]
['COM1', 'COM2', 'COM5', 'COM6']
from serial.tools.list_ports import comports
allPorts = list ( comports() )
print allPorts