如何在 Serial.Tools.List (Python) 中仅获取 COMx?

问题描述

我创建了一个程序,它对所有连接的设备(串行)进行排序。我只希望列表获取 COMx 端口而不是它们的描述。

import serial.tools.list_ports
ports = serial.tools.list_ports.comports()
List1 = []
for  port in sorted(ports):
        List1.append(port)

print(*List1)

它也总是显示描述,我不知道该怎么办? 谁能帮我解决这个问题?有任何想法吗? 我还阅读了pyserial文档并尝试将结果分为port,desc,hwid,没有用...

解决方法

如果您使用的是 Windows,您将能够仅列出具有以下其中一项的 COM 端口名称:

List1.append(port.name)

List1.append(port.device)

如果您坚持使用名为 COMx 的字符串,您可以将comports() 更改为:

ports = serial.tools.list_ports.grep("COM[1-9][0-9]*")

serial.tools.list_ports
classserial.tools.list_ports.ListPortInfo

  • 设备
    完整的设备名称/路径,例如/dev/ttyUSB0.这也是索引访问时作为第一个元素返回的信息。

  • 姓名
    短设备名称,例如ttyUSB0.