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