Python查询磁盘信息,磁盘剩余可用空间

参考:https://www.iteye.com/blog/halfish-1706810

环境:

Python: 3.6

系统:server 2016

设计模块包:wmi   #pip install wmi

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)))
  

原文地址:https://www.cnblogs.com/HugJun/p/12202510.html

时间: 2024-11-05 14:58:21

Python查询磁盘信息,磁盘剩余可用空间的相关文章

L01-04:python查询员工信息表练习

#decoding=utf-8 '''编写可供用户查询的员工信息表! 1|用户认证    ID Name department phone    查询关键字:姓名''' import linecache input01=raw_input("pls write your name:") i=1 name=[] count = len(open('user.txt','rU').readlines()) while i<=count:         fline = linecac

解决 Orange Pi 烧录完系统后剩余可用空间过少的问题

输入命令 df -ha 这图是拿别人的 看到系统才使用3.2g,内存卡有16g,不可能满的. 执行命令,加上sudo,防止权限不够: sudo fs_resize 如果上面那个不行的话,试试这个命令(这个我没试过的,我执行上面那个就成功了的) resize_part 注意:一定要断电重启,否则会出现系统黑屏. 重启之后重新查一下可用的内存变多了. 原文地址:https://www.cnblogs.com/codeDevotee/p/11405133.html

磁盘空间已满,但是还有可用空间

1.问题: tts服务器邮件提示西安交大教学中心磁盘空间已满.根据查看磁盘空间命令显示,应该还有23g的剩余空间,但在Avail这一项上,已显示为0,如下图所示. [[email protected] streams]# df –h 2.排查: 2.1inode节点用完 inode节点是否用完,显示只用了6%,排除. [[email protected] streams]# df –i 2.2系统预留空间过大 大多数文件系统都会保留一部分空间留作紧急情况时用(比如硬盘空间满了),这样能保证有些关

数据库还原总提示空间不够,磁盘卷 &#39;D:\&#39; 上的可用空间不足,无法创建数据库

从数据库上备份下来bak格式的数据库文件之后,在本地数据库欢迎的时候总是提示空间不够. 这种情况一般在从64位电脑上面备份的数据库文件,还原到32位的sqlsever上面. System.Data.SqlClient.SqlError: 磁盘卷 'D:\' 上的可用空间不足,无法创建数据库.数据库尚需 27258781696 字节的可用空间,但只有 16987021312 字节可用. (Microsoft.SqlServer.Smo) 具体查询原因是:服务器上数据库的初始空间大小设置的太大了,本

探秘:磁盘可用空间被谁吃掉了?

可疑: 分区总容量 7.2T,挂载分区后发现只有6.8T的空间可以使用,400G的空间哪里去了?  探究: 1. 文件被删除未释放磁盘空间? 通过命令 lsof |grep delete 查看确认并未有被进程占用的deleted状态的文件句柄. 2.文件系统损坏了? umount 分区后,fsck.ext3 分区 ,挂载后空间依旧显示只有6.8T空间可用. 3.硬件坏了? 先放着硬件的状态,想想还有什么情况会导致这个问题? 到底是谁吃了我的磁盘空间? 在几个小伙伴的一致探寻下,最终谁会是真凶呢?

磁盘可用空间和占用空间对不上的问题

新公司的测试机磁盘空间空余很小,日志很多,也很大,做个日志压缩脚本,在夜里4:30自动运行,第二天后发现磁盘空间又满了,只好删除没用的日志,清空空间,可诡异的是怎么删除没用的文件,空间还是占用很大.如图 用du 根目录下,发现这些文件加一块也达不到占用的空间大小.如图 我也有遇见过此类问题,一般都是重启完事,因为磁盘坏道损坏有可能导致此问题. 或 DF -i 查看inode使用率,inode不够用也会导致此问题.可看了inode也够用. 如图 这次我度娘了一下,"磁盘空间没释放",按一

移动磁盘可用空间0字节数据怎么寻回

可用空间0字节说明这个盘的文件系统结构损坏了.在平时如果数据不重要,那么可以直接格式化就能用了.但是有的时候里面的数据很重要,那么就必须先恢复出数据再格式化.具体恢复方法可以看正文了解(不格式化的恢复方法) 工具/软件:星空数据恢复软件 步骤1:先下载并解压程序打开后,直接双击需要恢复的分区,接着右击软件图标选择<以管理员身份运行>(如果是xp系统可以直接双击打开软件)步骤2:程序运行后,直接双击需要恢复数据的盘步骤3:软件找到数据后,会放到与要恢复盘同名的目录中步骤4:打钩所有需要恢复的数据

Sqlserver查询数据库文件大小和剩余空间

在MS Sql Server中可以能过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率: 1.查询各个磁盘分区的剩余空间:Exec master.dbo.xp_fixeddrives 2.查询数据库的数据文件及日志文件的相关信息(包括文件组.当前文件大小.文件最大值.文件增长设置.文件逻辑名.文件路径等)select * from [数据库名].[dbo].[sysfiles]转换文件大小单位为MB:select name, convert(float,size)

Linux之df磁盘信息

df命令用于查看磁盘的分区,磁盘已使用的空间,剩余的空间 1.用法 df [选项] [文件..] 2.命令选项 -a,--all 全部文件系统-h,--human-readable 以以合适的单位来显示信息-H,--si 与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes-i,--inodes  显示inode的信息-k,--kilobytes 指定区块大小为1024字节-l,--local   只显示本地文件系统-m,--megabytes 指定区块大小为10