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>]

正如您所看到的,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)

最佳答案

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

import serial.tools.list_ports

ports = serial.tools.list_ports.comports()

print([port.name for port in ports])

关于python - Python中的Pyserial(列出没有for循环的可用comports),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49176095/

10-13 07:24