我有一个带有 SD 卡的 USB 复合设备。使用 Python,我需要一种方法来在设备连接时找到 SD 卡的驱动器号。有任何人对此有经验吗?最初它需要在 Windows 中工作,但我最终需要将它移植到 Mac 和 Linux。
感谢 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)
首先找到合适的磁盘,然后搜索该磁盘的分区,最后找到该分区的逻辑磁盘卷。