【学习笔记】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)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容