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

news/2025/3/1 5:28:48/

获取系统内存操作(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()

http://www.ppmy.cn/news/71217.html

相关文章

【Java】jieba结巴分词器自定义分词词典 超详细完整版

发现一款很轻量好用的分词器->结巴分词器 分享给大家 不仅可以对常规语句分词&#xff0c;还可以自定义分词内容&#xff0c;很强大&#xff01;&#xff01; 源码地址&#x1f449;&#xff1a;https://github.com/huaban/jieba-analysis 简单使用 如果是常规的语句&#…

基于 KONOS 编写一个部门级的前端框架

01 什么是 konos 现在对于前端框架的定义越来越广泛了&#xff0c;在前端工程化中的某一个环节的特定方案&#xff0c;都可泛称为一个前端框架。 konos 是一个插件化的前端框架基座&#xff0c;如果你对 umi 有所了解的话&#xff0c;可以把它当作一个没有任何功能的 umi core …

《终身成长》笔记一——人的表现不能只根据一次评估来断定

目录 内容简介 经典摘录 1、会有人热爱失败吗 2、人为什么会有不同 3、两种思维模式对人意味着什么 4、 两种思维模式之下的不同生活 5、【成长型思维模式】下你将会看到什么 6、但教书育人不就是学校要做的吗&#xff1f;他们来到学校&#xff0c;就是为了学习如何去做…

gtest安装

sudo apt update sudo apt install build-essential cmake git clone https://github.com/google/googletest.git cd googletest mkdir build cd build cmake … make ./bin/gtest_unittests&#xff08;测试一下gtest是否正常&#xff0c;但我这bin下没有内容&#xff09; sud…

MySQL之InnoDB表空间

前言 本文章收录在MySQL性能优化原理实战专栏&#xff0c;点击此处查看更多优质内容。 本文摘录自 ▪ 小孩子4919《MySQL是怎样运行的&#xff1a;从根儿上理解MySQL》 通过前边的内容&#xff0c;相信大家都知道了表空间是一个抽象的概念&#xff0c;对于系统表空间来说&am…

泛型方法的定义

package com.test.test04;/* * 1.什么是泛型方法&#xff1a; * 不是带泛型的方法就是泛型方法 * 泛型方法有要求&#xff1a;这个方法的泛型的参数类型要和当前的类的泛型无关。 * 换个角度 * 泛型方法对应的那个泛型参数类型和当前所在的这个类是否是泛型类&#xff0c;…

【unity】Runtime Editor的简单使用

Runtime Editor的简单使用 版本v2.26 定位、旋转、伸缩变形句柄 添加句柄预制体 位置&#xff1a;Battlehub→RTEditor→Content→Runtime→RTHandles→Prefabs PositionHandle&#xff08;移动句柄&#xff09; RotationHandle&#xff08;旋转句柄&#xff09; ScaleH…

ApiKit 介绍及基本用法

1、ApiKit介绍及下载 ApiKitAPI 管理 Mock 自动化测试 异常监控 团队协作 结合 API 设计、文档管理、自动化测试、监控、研发管理和团队协作的一站式 API 生产平台&#xff0c;从个人开发者到跨国企业用户&#xff0c;Apikit 帮助全球超过50万开发者和10万家企业更快、更好…