Python 中的 Pyserial(列出可用的 comports,无需 for 循环)

5 python port pyserial python-3.5

import serial.tools.list_ports

ports = serial.tools.list_ports.comports()

print(ports)
#[<serial.tools.list_ports_common.ListPortInfo object at 0x000001D48771C9B0>, <serial.tools.list_ports_common.ListPortInfo object at 0x000001D48866FB00>]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,comports 不可读,我可以通过 for 循环使其可读,但我需要将其放在具有可读单词的列表中,例如。[“COM1”,“COM2”,“COM3”]

有人有任何想法来改变它吗?我尝试创建一个新列表并附加到循环中也没有运气。当我打印出来时,结果是一样的。

更新:我认为我上次所做的是将每个对象再次附加在一起。我可以使用下面的代码获取我想要的 COM 特定信息:

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)
Run Code Online (Sandbox Code Playgroud)

eyl*_*esc 3

您可以遍历列表并获取名称:

import serial.tools.list_ports

ports = serial.tools.list_ports.comports()

print([port.name for port in ports])
Run Code Online (Sandbox Code Playgroud)

  • 在 Windows 上,我必须使用“port.device”,因为“port.name”为空。 (2认同)