【发布时间】:2016-04-25 16:37:05
【问题描述】:
我构建了一个脚本(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 不完全是一个字符串,而是某种对象?
无论如何,正确的方法是什么?
谢谢!!
【问题讨论】:
-
添加
else: print "NOT:",repr(p)你有你的评论(这不是 python 评论......但我怀疑你知道) -
应该是
str(p),但你也可以使用p.description。 -
我想就这么简单!谢谢大家,你摇滚! str(p) 成功了。
-
在 Windows 中,即使在安装 pyserial 后导入也面临问题,关于如何解决这个问题的任何想法。错误是:“ImportError:没有名为 tools.list_ports 的模块”
标签: python windows python-2.7 pyserial