【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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间之里

好东西就应该拿出来大家共享

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值