python win系统获取磁盘及文件夹大小
2016-06-13 15:39
459 查看
获取磁盘信息:已使用空间、总空间大小等,python没有自带的函数,常用的插件:WMI
python中自带的有获取文件夹大小、名称等信息的函数:walk()
pywin32下载地址:https://sourceforge.net/projects/pywin32/files/pywin32/
因为依赖原因,在安装wmi之前需要先安装pywin32;
完成后拷贝解压后WMI-1.4.9文件夹到安装python的文件夹里面(C:/Python27/WMI-1.4.9)
然后在命令行执行:
至于#size += sum([getsize(join(root, name)) for name in files])
在C盘会报错:error[5],没有权限。其他盘则正常工作。
本文出自he ivy 的博客,转载请注明出处:/article/11909780.html
python中自带的有获取文件夹大小、名称等信息的函数:walk()
使用wmi之前的配置
环境:win7、win8 python2.7.7 wmi:1.4.9 pywin32:pywin32-218.win-amd64-py2.7.exe
pywin32下载地址:https://sourceforge.net/projects/pywin32/files/pywin32/
注意:要下载和自己系统和所安装python版本相匹配的
因为依赖原因,在安装wmi之前需要先安装pywin32;
完成后拷贝解压后WMI-1.4.9文件夹到安装python的文件夹里面(C:/Python27/WMI-1.4.9)
然后在命令行执行:
python */Python27/WMI-1.4.9/setup.py install
实例
getdiskinfo
def get_disk_info(): """ :return: get the 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
getfsinfo
def get_fs_info(): """ :return:get the file system info :contain partition's size ,used,avail ,operating frequency, mount 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
文件夹大小
def fssize(dirpath): size = 0 if os.path.exists(dirpath): if os.path.isdir(dirpath): for root, dirs, files in os.walk(dirpath): for name in files: try: size += getsize(join(root, name)) except: continue #size += sum([getsize(join(root, name)) for name in files]) elif os.path.isfile(dirpath): size = os.path.getsize(dirpath) else: continue return size
至于#size += sum([getsize(join(root, name)) for name in files])
在C盘会报错:error[5],没有权限。其他盘则正常工作。
本文出自he ivy 的博客,转载请注明出处:/article/11909780.html
相关文章推荐
- Python
- 关于Python中的yield
- Python3 学习手册(一) 基本数据类型
- Python中str()与__str__、repr()与__repr__、eval()、__unicode__的关系与区别
- Python 常用模块
- Python的Flask框架中集成CKeditor富文本编辑器的教程
- python 计算器的(正则匹配+递归)
- Python - 标准库的使用方法
- python自动处理数据生成报表
- 谈谈对Python装饰器的理解
- python version 2.7 required,which was not found in the registry
- Python自然语言处理--处理原始文本
- Python 获取对象信息
- Python序列类型操作符和内建方法
- python_使用
- Python学习笔记-“敌舰击沉”小游戏
- Python 继承和多态
- python基础之迭代器和生成器
- python 自定义包并import自己的包
- 【正则表达式】pyahocorasick介绍