使用 Python 识别 USB 设备的驱动器号

Jul*_*lie 1 python

我有一个带有 SD 卡的 USB 复合设备。使用 Python,我需要一种方法来在设备连接时找到 SD 卡的驱动器号。有任何人对此有经验吗?最初它需要在 Windows 中工作,但我最终需要将它移植到 Mac 和 Linux。

Jul*_*lie 5

感谢 Bill 的建议,我能够使用 WMI 查询解决这个问题。正如他在回答中所说,您需要安装 Tim Golden 的WMI 模块

在此示例中,我将搜索型号为“WDC WD20EZRX-00D8PB0 ATA 设备”的磁盘的驱动器号。查看所有连接的驱动器。

import wmi
c = wmi.WMI ()

for drive in c.Win32_DiskDrive():
    print drive
Run Code Online (Sandbox Code Playgroud)

拥有模型后,您可以将其添加到以下查询中:

import wmi
c = wmi.WMI ()

for disk in c.query('SELECT * FROM Win32_DiskDrive WHERE Model LIKE "WDC WD20EZRX-00D8PB0 ATA Device"'):
    deviceID = disk.DeviceID

    for partition in c.query('ASSOCIATORS OF {Win32_DiskDrive.DeviceID="' + deviceID + '"} WHERE AssocClass = Win32_DiskDriveToDiskPartition'):

        for logical_disk in c.query('ASSOCIATORS OF {Win32_DiskPartition.DeviceID="' + partition.DeviceID + '"} WHERE AssocClass = Win32_LogicalDiskToPartition'):
            print('Drive letter: {}'.format(logical_disk.DeviceID))
Run Code Online (Sandbox Code Playgroud)

哪个输出

Drive letter: K:
Run Code Online (Sandbox Code Playgroud)

首先找到合适的磁盘,然后搜索该磁盘的分区,最后找到该分区的逻辑磁盘卷。