我已经构建了一个脚本(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)
>>>
太好了!但是,我希望这个脚本自动从群中挑选出mycdcddevice并连接到它。
我试过: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不是一个字符串,而是某种物体?
不管怎样,正确的方法是什么?
谢谢!!
为了进一步扩展,我发现使用有问题设备的PID和VID更安全。
更好的是,您可以使用设备的序列号进行查找,以防插入了同一设备的2个。
(Source)
我知道这篇文章很老了,但我想我会发表我的发现,因为没有“接受”的答案(迟发总比不发好)。
This documentation帮助确定对象的成员,我最终得到了这个解决方案。
您可以使用
serial.tools.list_ports.grep
,它为您搜索所有描述字段。例如:如果这不起作用,您可以尝试在传递给
grep
的字符串末尾添加一个*
,以防描述符中有多余的字符。相关问题 更多 >
编程相关推荐