gpt4 book ai didi

python - 如何使用 Python 在 Windows 中获取原始磁盘或 block 设备大小

转载 作者:可可西里 更新时间:2023-11-01 14:36:14 24 4
gpt4 key购买 nike

如果我只知道设备名称为“\.\PhysicalDrive0”且没有文件系统或卷标,如何从 Windows 中的 block 设备或原始磁盘获取大小?

我尝试了以下方法:

fd = os.open(r"\.\PhysicalDrive0", os.O_RDONLY)

os.lseek(fd, 0, os.SEEK_END)

它在 Linux 上运行良好,但在 Windows 上总是返回“OSError: [Errno 22] Invalid argument”。

我还尝试了 ctypes.windll.kernel32.GetDiskFreeSpaceExW(),但它似乎只适用于具有文件系统和分配的卷标的磁盘。

对原始磁盘或 block 设备执行此操作的正确方法是什么?

提前致谢。

最佳答案

使用 wmi模块

import wmi
c = wmi.WMI()
[drive] = c.Win32_DiskDrive(Index=0)
print("The disk has %s bytes" % drive.size)
print("Or %s GB" % int(int(drive.size) / 1024**3))

磁盘有 320070320640 字节
或 298 GB

此代码在 WMI 接口(interface)中查询索引等于 0Win32_DiskDrive 对象(因此只有一个结果,结果是 PHYSICALDRIVE0)。 drive 对象有一个名为 size 的属性,它是一个包含驱动器大小(以字节为单位)的字符串。

关于python - 如何使用 Python 在 Windows 中获取原始磁盘或 block 设备大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17374551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com