我正在尝试列出我基于Windows的电脑中的串行端口
这是我的端口列表:(COM3&COM8)
代码:
if sys.platform.startswith("win32"):
from serial.tools.list_ports_windows import *
elif sys.platform.startswith("linux"):
from serial.tools.list_ports import *
else:
raise ImportError("Sorry: no implementation for your platform {} available".format(sys.platform))
.........Class definition and other methods..................
def GetList(self, verbose=True):
"""
gets the list of all available ports
"""
results = []
hits = 0
iterator = sorted(comports())
# list them
for port, desc, hwid in iterator:
comPort = port
if verbose:
descValue = desc
hwidValue = hwid
results.append({'comPort': comPort, 'descValue': descValue, 'hwidValue': hwidValue})
else:
results.append({'comPort': comPort})
hits += 1
results.append({"available": "{} ports found".format(hits)})
return results
输出:
^{pr2}$问题:
为什么我看不到我电脑上的所有端口我的代码有问题吗?在
如图所示,我有两个端口COM3和COM8。在
对虚拟com端口,list_ports_windows
是否有限制?
我可以告诉你使用WMI(pythonwmi模块:https://pypi.python.org/pypi/WMI/)
结果相同,只列出硬件串行端口。因此,我想您的实现也会发生同样的情况,原因是相同的,例如,您只能获得硬件端口。编辑:根据Kobi K,这确实列出了虚拟端口。在
但是,您可以检查注册表中的所有虚拟端口:HKEY\U LOCAL U MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM\
相关问题 更多 >
编程相关推荐