写一个获取linux下磁盘分区信息的函数,类似fdisk -l的功能
时间: 2024-03-09 14:45:32 浏览: 233
下面是一个获取Linux磁盘分区信息的函数,类似于fdisk -l的功能:
```python
import subprocess
def get_disk_info():
# 执行 fdisk -l 命令获取磁盘信息
cmd = "fdisk -l"
result = subprocess.check_output(cmd, shell=True)
result = result.decode('utf-8')
# 解析磁盘信息
disks = []
for line in result.split("\n"):
line = line.strip()
if line.startswith("Disk /"):
disk_info = line.split()
disk_name = disk_info[1].replace(":", "")
disk_size = disk_info[2]
disk_unit = disk_info[3][1:-1]
disks.append({
"name": disk_name,
"size": disk_size,
"unit": disk_unit,
"partitions": []
})
elif line.startswith(disk_name):
partition_info = line.split()
partition_name = partition_info[0]
partition_size = partition_info[1]
partition_unit = partition_info[2]
disks[-1]["partitions"].append({
"name": partition_name,
"size": partition_size,
"unit": partition_unit
})
return disks
```
该函数使用了`subprocess`模块来执行`fdisk -l`命令,并通过解析命令输出的结果来获取磁盘信息。函数返回一个包含磁盘信息的列表,每个磁盘包含磁盘名称、磁盘大小、磁盘单位和分区列表,每个分区包含分区名称、分区大小和分区单位。
阅读全文