python - 在 pySerial (Windows) 中查找特定的串行 COM 端口

标签 python windows python-2.7 pyserial

我构建了一个脚本(Windows 7、Python 2.7)来列出串行端口,但我正在寻找具有特定名称的设备。 我的脚本:

import serial.tools.list_ports
ports = list(serial.tools.list_ports.comports())
for p in ports:
    print(p)

返回:

COM3 - Intel(R) Active Management Technology - SOL (COM3)
COM6 - MyCDCDevice (COM6)
COM1 - Communications Port (COM1)
>>> 

太棒了!但是,我希望此脚本自动从一堆中挑选出 MyCDCDevice 并连接到它。 我试过:

import serial.tools.list_ports

ports = list(serial.tools.list_ports.comports())
for p in ports:
    if 'MyCDCDevice' in p:
        print(p)
        // do connection stuff to COM6

但这行不通。我怀疑是因为 p 不完全是一个字符串,而是某种对象?

无论如何,解决这个问题的正确方法是什么?

谢谢!!

最佳答案

我知道这篇文章已经很老了,但我想我会发布我的发现,因为没有“接受”的答案(迟到总比不到好)。

This documentation帮助确定对象的成员,我最终得出了这个解决方案。

import serial.tools.list_ports

ports = list(serial.tools.list_ports.comports())
for p in ports:
    if 'MyCDCDevice' in p.description:
        print(p)
        # Connection to port
        s = serial.Serial(p.device)

关于python - 在 pySerial (Windows) 中查找特定的串行 COM 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889768/

相关文章:

python - 查找 x-y 坐标

Python __index__ 特殊方法

python - 属性错误: module 'tensorflow' has no attribute 'keras'

python - 如何删除 3D 矩阵中的零元素?

python - 如何重启twisted和deluge客户端rpc的reactor

windows - ASP.NET MVC 站点在 LAN 上运行速度非常慢,但在本地主机上运行良好

c# - 使用 C# 将证书从 LocalComputer 复制到 CurrentUser

java - 在Java中获取Windows "load average"

python-2.7 - 如何修复 pip 安装错误 : 'EnvironmentError: [Errno 42] Illegal byte sequence' ?

regex - Python - 检查字符串是否在更大的字符串中