Python获取指定文件夹大小及检测磁盘剩余空间的方法

沈知远
沈知远
发布时间:2026-10-13 | 3人浏览过
原创

本文介绍如何使用Python检测指定路径下所有文件占用的存储空间,并获取磁盘剩余空间大小。通过os.walk遍历文件计算容量,利用os.statvfs或ctypes库实现跨平台(Windows与Unix/Linux)的磁盘空间查询,适用于系统监控与资源管理场景。

首先介绍如何计算指定路径下所有文件所占用的存储空间。

import os
def check_memory(path, style='M'):
 i = 0
 for dirpath, dirname, filename in os.walk(path):
  for ii in filename:
   i += os.path.getsize(os.path.join(dirpath,ii))
 if style == 'M':
  memory = i / 1024. / 1024.
  print '%.2f MB' % memory
 else:
  memory = i / 1024. / 1024./ 1024.
  print '%.4f GB' % memory

接着介绍如何检测指定路径下的剩余储存空间大小。

import ctypes
import os
import platform
import sys
def get_free_space_mb(folder):
 """ Return folder/drive free space (in bytes)
 """
 if platform.system() == 'Windows':
  free_bytes = ctypes.c_ulonglong(0)
  ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder), None, None, ctypes.pointer(free_bytes))
  return free_bytes.value/1024/1024/1024 
 else:
  st = os.statvfs(folder)
  return st.f_bavail * st.f_frsize/1024/1024/1024.

需要注意的是,上述基于os.statvfs的方法仅适用于Unix类系统,在Windows系统中os模块不具备statvfs属性,因此需要采用其他方案。

def disk_stat(path):
 import os
 hd={}
 disk = os.statvfs(path)
 percent = (disk.f_blocks - disk.f_bfree) * 100 / (disk.f_blocks -disk.f_bfree + disk.f_bavail) + 1
 return percent
print disk_stat('.')

以上关于Python检测储存空间剩余大小及指定文件夹内存占用的实例分享完毕,希望能为读者提供参考,并欢迎大家继续支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表