如何在Windows中获取物理驱动器

时间:2009-09-30 08:47:55

标签: python windows

我使用kernel32 dll的包装器在Python中编程,所以我可以使用这个dll的任何函数,例如GetLogicalDrives()。我正在尝试获取物理驱动器的信息,即使它们未安装。我见过类似这样的问题,但我需要未安装驱动器的信息。我见过的所有方法都需要设备中的目录或文件,但是如果它没有安装,我就不能有,所以问题是:

是否有一种方法可以为我提供系统中的物理驱动器列表,即使它们没有安装?

我不得不说使用Windows注册表,我已经在“ HKEY_LOCAL_MACHINE \ Hardware \ Devicemap \ Scsi \ Scsi Port x ”中获得了物理驱动器的数量,因为在此键的内部,你可以看到驱动器的数量,包括cd-rom设备或软盘设备。但我也需要未安装设备的尺寸,所以......

5 个答案:

答案 0 :(得分:3)

使用Tim Golden的wmi模块。这是cookbook条目:

import wmi

w = wmi.WMI()
for drive in w.Win32_LogicalDisk():
    print drive.Caption, drive.Size, drive.FreeSpace

打印

C: 99928924160 14214135808
D: None None
E: 499983122432 3380903936
S: 737329123328 362274299904
T: 737329123328 9654988800

但请注意,我的D:驱动器(DVD驱动器,未安装)没有可用信息。我不认为你可以获得未安装的可移动媒体的尺寸信息。

答案 1 :(得分:1)

FindFirstVolume和FindNextVolume 可能是你需要的。

MSDN FindFirstVolume page

有一个示例可以搜索卷并列出每个卷的所有路径,乍一看,它似乎允许某些卷没有这种路径的可能性。也就是说,我从来没有用过这个。

答案 2 :(得分:1)

您也可以尝试使用win32模块进行Python。

答案 3 :(得分:0)

Win32_DiskDrive wmi课怎么样?

c = wmi.WMI()

dd = c.Win32_DiskDrive()[0]

print.dd

有关Win32_DiskDrive on the msdn

的更多信息

答案 4 :(得分:-2)

http://msdn.microsoft.com/en-us/library/aa365730(VS.85).aspx

GetLogicalDrives() GetLogicalDriveStrings()

看起来像你想要的。但他们的工作是A:,B:C:等,而不是\?\ HardDisk或其他什么