如何用Python获取Windows下名为TOSHIBA的U盘盘符?
Python实现获取Windows下标签为"TOSHIBA"的驱动器盘符
以下几种方法可以实现你需要的功能,等效于给定的PowerShell命令:
方法1:使用wmi库
这是最贴近PowerShell逻辑的实现方式,直接通过WMI查询卷信息:
首先安装依赖库:
pip install wmi
然后编写代码:
import wmi c = wmi.WMI() # 遍历所有卷,筛选标签为"TOSHIBA"的项 for volume in c.Win32_Volume(): if volume.Label == "TOSHIBA": drive_letter = volume.DriveLetter if drive_letter: # 排除无盘符的卷 print(f"找到的盘符: {drive_letter}") break else: print("未找到标签为TOSHIBA的驱动器")
方法2:通过subprocess调用PowerShell命令
如果你不想额外安装第三方库,可以直接调用你已经验证有效的PowerShell命令,通过Python解析输出:
import subprocess import json # 执行PowerShell命令并将结果转为JSON格式,方便Python解析 ps_command = '$drive=(Get-WmiObject Win32_Volume | Where-Object {$_.Label -eq "TOSHIBA"}).DriveLetter; ConvertTo-Json $drive' result = subprocess.run( ["powershell", "-Command", ps_command], capture_output=True, text=True, check=False ) if result.returncode == 0: drive_letter = json.loads(result.stdout).strip() if drive_letter: print(f"找到的盘符: {drive_letter}") else: print("未找到标签为TOSHIBA的驱动器") else: print(f"命令执行出错: {result.stderr}")
方法3:使用win32com.client
通过Windows原生的COM接口访问WMI,依赖pywin32库:
先安装依赖:
pip install pywin32
代码实现:
import win32com.client wmi_service = win32com.client.GetObject("winmgmts:") volumes = wmi_service.InstancesOf("Win32_Volume") for volume in volumes: if volume.Label == "TOSHIBA": drive_letter = volume.DriveLetter if drive_letter: print(f"找到的盘符: {drive_letter}") break else: print("未找到标签为TOSHIBA的驱动器")
内容的提问来源于stack exchange,提问作者Faisal_SHA
相关产品推荐
相关产品推荐

