【linux】:获取系统内存及内存清理操作(python)

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 os

def 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 # 计算剩余可用空间,单位为MB
    print("Available space is:",os.statvfs(img_folder)[:3])
    if available_space < 1000: # 判断剩余空间是否小于1G
        print('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()

猜你喜欢

转载自blog.csdn.net/weixin_44322778/article/details/130707471
今日推荐