Python檢測Windows剩餘磁盤空間

設計模塊包:

wmi   #pip install wmi

windows 10 64 位,安裝成功;

windows 2008 64位,安裝失敗。

 

Windows Management Instrumentation (WMI)

A lightweight wrapper around the WMI classes available for all Win32 platforms. These provide a standard way to access system-level information and interdependencies

官網:

http://timgolden.me.uk/python/index.html

 

import wmi

def get_disk_info():
    """
    獲取物理磁盤信息。
    """
    tmplist = []
    c = wmi.WMI()
    for physical_disk in c.Win32_DiskDrive():
        tmpdict = {}
        tmpdict["Caption"] = physical_disk.Caption
        tmpdict["Size"] = int(physical_disk.Size) / 1024 / 1024 / 1024
        tmplist.append(tmpdict)
    return tmplist


def get_fs_info():
    """
    獲取文件系統信息
    包含分區的大小、已用量、可用量、使用率、掛載點信息
    """
    tmplist = []
    c = wmi.WMI()
    for physical_disk in c.Win32_DiskDrive():
        for partition in physical_disk.associators("Win32_DiskDriveToDiskPartition"):
            for logical_disk in partition.associators("Win32_LogicalDiskToPartition"):
                tmpdict = {}
                tmpdict["Caption"] = logical_disk.Caption
                tmpdict["DiskTotal"] = int(logical_disk.Size) / 1024 / 1024 / 1024
                tmpdict["UseSpace"] = (int(logical_disk.Size) - int(logical_disk.FreeSpace)) / 1024 / 1024 / 1024
                tmpdict["FreeSpace"] = int(logical_disk.FreeSpace) / 1024 / 1024 / 1024
                tmpdict["Percent"] = int(
                    100.0 * (int(logical_disk.Size) - int(logical_disk.FreeSpace)) / int(logical_disk.Size))
                tmplist.append(tmpdict)
    return tmplist


if __name__ == "__main__":
    disk = get_disk_info()
    print(disk)
    #獲取磁盤信息
    fs = get_fs_info()
    for f in fs:
        disk_name = f['Caption'] #磁盤名
        DiskTotal = f['DiskTotal'] #磁盤大小 單位G
        disk_UseSpace = f['UseSpace'] #已用磁盤大小 單位G
        disk_FreeSpace = f['FreeSpace'] #剩餘可用磁盤大小 單位G
        print('磁盤名:{}  磁盤大小:{}G   已用空間:{}G  剩餘可用空間:{}G !!'.format(disk_name,round(DiskTotal,2),round(disk_UseSpace,2),round(disk_FreeSpace,2)))
  

 

REF

https://www.cnblogs.com/HugJun/p/12202510.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章