【学习笔记】python36使用wmi获取Windows磁盘剩余空间2018-09-25

# -*- coding:utf-8 -*-

'''

python36 - windows获取磁盘空间
Wmi = wmi.WMI()
ListDisk = Wmi.Win32_LogicalDisk ()
DiskFreeSaceint = int(Disks.FreeSpace)
DiskFreeSaceintFormat = getSizeInNiceString(DiskFreeSaceint)

Disks.Caption
'''

import wmi


def getSizeInNiceString(sizeInBytes):
    '''
    将字节格式化为字符串 例: 9.9bytes/KB/MB/GB
    '''
    for (cutoff, label) in [(1024*1024*1024, "GB"),
                            (1024*1024, "MB"),
                            (1024, "KB"),
                            ]:
        if sizeInBytes >= cutoff:
            return "%.1f %s" % (sizeInBytes * 1.0 / cutoff, label)
        if sizeInBytes == 1:
            return "1 byte"
        else:
            bytes = "%.1f" % (sizeInBytes or 0,)
    return (bytes[:-2] if bytes.endswith('.0') else bytes) + ' bytes'


def DiskFreeSpace(DiskName):
    '''
        获取DiskName的剩余空间大小

        C = DiskFreeSpace("C:")
        return 78.2GB

        W = DiskFreeSpace("W:")
        return 无法找到该盘符:W:
    '''
    Wmi = wmi.WMI()
    ListDisk = Wmi.Win32_LogicalDisk()
    DiskDicts = {}
    for Disks in ListDisk:
        DiskFreeSaceint = int(Disks.FreeSpace)
        DiskFreeSaceintFormat = getSizeInNiceString(DiskFreeSaceint)
        DiskDicts[Disks.Caption] = DiskFreeSaceintFormat
    for i in DiskDicts:
        if i == DiskName:
            return DiskDicts[DiskName]
    return "无法找到该盘符:" + DiskName


C = DiskFreeSpace("C:")
W = DiskFreeSpace("W:")
print(C)
print(W)

你可能感兴趣的:(【学习笔记】python36使用wmi获取Windows磁盘剩余空间2018-09-25)