python实现自动清理文件夹旧文件


Posted in Python onMay 10, 2021

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下

由于程序一直在不停地存图,因此需要监测图片文件夹的大小,一旦超过指定大小则删除一部分最早的图片。

采用开线程的方式,在线程里每隔一段时间键执行一次监测过程。

即  测文件夹大小->若超过则将文件夹里的文件按最后修改时间排序->删除一些最早的图片->删的过程中监测文件夹大小是否符合要求 

# -*- coding: utf-8 -*-
 
# 
# 开线程检测文件夹大小,超过指定大小,则按文件最后修改时间排序并删除一部分旧图片
# 在线程里每隔一段时间检测一次
#
 
import os
import threading
import time
 
 
#文件按最后修改时间排序
def get_file_list(file_path):
  dir_list = os.listdir(file_path)
  if not dir_list:
    return
  else:
    dir_list = sorted(dir_list, key=lambda x: os.path.getmtime(os.path.join(file_path, x)))
    #print(dir_list)
    return dir_list
 
#获取文件夹大小
def get_size(file_path):
    totalsize=0
    for filename in os.listdir(file_path):
        totalsize=totalsize+os.path.getsize(os.path.join(file_path, filename))
    #print(totalsize / 1024 / 1024)
    return totalsize / 1024 / 1024
 
# 1文件目录   2文件夹最大大小(M)   3超过后要删除的大小(M)
def detect_file_size(file_path, size_Max, size_Del):
    print(get_size(file_path))
    if get_size(file_path) > size_Max:
        fileList = get_file_list(file_path)
        for i in range(len(fileList)):
            if get_size(file_path) > (size_Max - size_Del):
                print ("del :%d %s" % (i + 1, fileList[i]))
                os.remove(file_path + fileList[i])
    
 
#检测线程,每个5秒检测一次
def detectPicSize():
    while True:
        print('======detect============')
        detect_file_size("../pic/", 30, 5)
        time.sleep(5)
  
if __name__ == "__main__":
    #创建检测线程
    detect_thread = threading.Thread(target = detectPicSize)
    detect_thread.start()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现查找两个字符串中相同字符并输出的方法
Jul 11 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
详解Python下ftp上传文件linux服务器
Jun 21 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
Python谱减法语音降噪实例
Dec 18 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 Python
Python中的min及返回最小值索引的操作
May 10 #Python
发工资啦!教你用Python实现邮箱自动群发工资条
在Django中使用MQTT的方法
May 10 #Python
十个Python自动化常用操作,即拿即用
May 10 #Python
Django开发RESTful API实现增删改查(入门级)
May 10 #Python
Python中X[:,0]和X[:,1]的用法
May 10 #Python
Python Django搭建文件下载服务器的实现
You might like
通过html表格发电子邮件
2006/10/09 PHP
处理单名多值表单的详解
2013/06/08 PHP
php防止sql注入简单分析
2015/03/18 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
DEFER怎么用?
2006/07/01 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
Python----数据预处理代码实例
2019/03/20 Python
Django框架实现的分页demo示例
2019/05/25 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
药学专业个人自我评价
2013/11/11 职场文书
学生会干部自荐信
2014/02/04 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
初一英语教学反思
2016/02/15 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL