串行工具列表\u端口\u windows无法检测串行p

2024-10-04 01:25:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试列出我基于Windows的电脑中的串行端口

这是我的端口列表:(COM3&COM8)

enter image description here

代码:

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是否有限制?


Tags: 端口sysportsresultslistavailableplatform电脑
1条回答
网友
1楼 · 发布于 2024-10-04 01:25:17

我可以告诉你使用WMI(pythonwmi模块:https://pypi.python.org/pypi/WMI/

import wmi
c = wmi.WMI()
wql = "Select * From Win32_SerialPort"
for item in c.query(wql):
    print item

结果相同,只列出硬件串行端口。因此,我想您的实现也会发生同样的情况,原因是相同的,例如,您只能获得硬件端口。

编辑:根据Kobi K,这确实列出了虚拟端口。在

但是,您可以检查注册表中的所有虚拟端口:HKEY\U LOCAL U MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM\

相关问题 更多 >