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

How to get only COMx in Serial.Tools.List (Python)?

我创建了一个程序,用于对所有连接的设备(序列号)进行排序。我只希望列表获取 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

  • device
    Full device name/path, e.g. /dev/ttyUSB0. This is also the information returned as first element when accessed by index.

  • name
    Short device name, e.g. ttyUSB0.