获取系统内存操作(python)
- 1.os.statvf()函数介绍
- 2.系统剩余内存获取:
- 3.文件清理
1.os.statvf()函数介绍
os.statvfs() 方法用于返回包含文件描述符fd的文件的文件系统的信息。
语法
statvfs()方法语法格式如下:
os.statvfs([path])
参数
path – 文件路径。
返回值
返回的结构:
f_bsize: 文件系统块大小
f_frsize: 分栈大小
f_blocks: 文件系统数据块总数
f_bfree: 可用块数
f_bavail:非超级用户可获取的块数
f_files: 文件结点总数
f_ffree: 可用文件结点数
f_favail: 非超级用户的可用文件结点数
f_fsid: 文件系统标识 ID
f_flag: 挂载标记
f_namemax: 最大文件长度
说明:根据返回值我们可以用f_bavail和f_frsize两个参数来获取系统中剩余可用空间大小:
2.系统剩余内存获取:
可以使用以下代码来实现:```python
import os# 获取当前目录所在文件系统的信息
fs_info = os.statvfs('.')# 计算可用空间大小(以字节为单位)
available_space = fs_info.f_frsize * fs_info.f_bavail# 将可用空间转换为以M为单位
available_space_in_mb = available_space / (1024.0 ** 2)print(f"可用空间为:{available_space_in_mb:.2f}M")
运行以上代码,可以在终端输出当前目录所在文件系统的可用空间(以M为单位)。注意,在执行该代码时,需要确保当前目录所在的文件系统已经挂载并可用
3.文件清理
当系统中剩余内存小于1G 时直接清除指定文件夹下对应的“jpg文件”
import osdef clear_img_folder():img_folder = '/home/pi/Desktop/test_init1/err' # 替换为实际的img文件夹路径total, used, free = os.statvfs(img_folder)[:3]available_space = (free * total) / 1024 / 1024 # 计算剩余可用空间,单位为MBprint("Available space is:",os.statvfs(img_folder)[:3])if available_space < 1000: # 判断剩余空间是否小于1Gprint('Available space is less than 1G. Cleaning img folder...')for file_name in os.listdir(img_folder):if file_name.endswith('.jpg'):os.remove(os.path.join(img_folder, file_name))print('Img folder is cleaned.')else:print('Available space is enough. No need to clean.')if __name__ == '__main__':clear_img_folder()