实现效果:
完整代码:
# -*- coding: utf-8 -*-
import psutil
import json
from pprint import pprint
def getDiskInfo():
disk=(psutil.disk_partitions())
data = {"total":0,"users":0,"peruser":0,"disks":[]}
for c in disk:
try:
sdiskusage= psutil.disk_usage(c[0])
except:
#print(c[0]," Disk not available...")
pass
else:
d = {}
d["name"]=c[0]
d["total"] = sdiskusage.total
d["used"] = sdiskusage.used
d["free"] = sdiskusage.free
d["value"] = sdiskusage.percent
data["total"]+=d["total"]
data["users"]+=d["used"]
data["peruser"]+=d["value"]
if d["total"]>1024**3:
d["total"]=str(round(d["total"]/1024**3))+"G"
else:
d["total"]=str(round(d["total"]/1024**2))+"M"
data["disks"].append(d)
return data
def data_fat(data):
if data["total"]>1024**3:
data["total"]=str(round(data["total"]/1024**3))+"G"
else:
data["total"]=str(round(data["total"]/1024**2))+"M"
if data["users"]>1024**3:
data["users"]=str(round(data["users"]/1024**3))+"G"
else:
data["users"]=str(round(data["users"]/1024**2))+"M"
data["peruser"]=str(round(data["peruser"]/len(data["disks"])))+"%"
#return data
return json.dumps(data)
if __name__ == "__main__":
data=data_fat(getDiskInfo())
pprint(data)
print(type(data))
#fo = open("diskinfo.dat", "w+")
#line = fo.write(data)
#fo.close()