要使用Python读取硬盘序列号,你可以使用`psutil`库。以下是使用`psutil`库获取硬盘序列号的步骤和示例代码:
1. 确保`psutil`库已经安装在你的Python环境中。如果尚未安装,可以使用以下命令进行安装:
```
pip install psutil
2. 编写获取硬盘序列号的代码:```pythonimport psutil
def get_disk_serial_number():
partitions = psutil.disk_partitions()
for partition in partitions:
try:
with open(partition.mountpoint + '\\\\\\.\\PhysicalDrive' + str(partition.device_number), 'rb') as f:
data = f.read(512)
for i in range(0, len(data), 16):
if data[i:i+4] == b'\\x53\\x44\\x46\\x54': SMART signature
return data[i+16:i+32].hex() Serial number is 16 bytes after SMART signature
except Exception as e:
continue
return "硬盘序列号获取失败"
print(get_disk_serial_number())

这段代码会尝试读取每个分区的原始数据,并查找硬盘序列号(位于数据中的SMART签名之后)。如果找到,则返回序列号的十六进制表示。
请注意,此方法可能不适用于所有操作系统,并且可能需要相应的权限来访问硬盘数据。
如果你需要获取Windows系统上的硬盘序列号,还可以使用`wmi`库,如下所示:
```python
import wmi
c = wmi.WMI()
for physical_disk in c.Win32_DiskDrive():
print("硬盘序列号为:", physical_disk.SerialNumber.strip())
这段代码使用`wmi`库查询Windows系统上的`Win32_DiskDrive`类,以获取每个硬盘的序列号。请根据你的操作系统和需求选择合适的方法。
