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爬虫框架Scrapy实战之批量抓取招聘信息
Aug 07 Python
Python使用smtplib模块发送电子邮件的流程详解
Jun 27 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
python3.5 email实现发送邮件功能
May 22 Python
Python中判断输入是否为数字的实现代码
May 26 Python
Python实现聊天机器人的示例代码
Jul 09 Python
详解python算法之冒泡排序
Mar 05 Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
Tensorflow的常用矩阵生成方式
Jan 04 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
随机头像PHP版
2006/10/09 PHP
逐步提升php框架的性能
2008/01/10 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
jquery中动态效果小结
2010/12/16 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2014/04/11 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
Python3实现并发检验代理池地址的方法
2016/09/18 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
python实现共轭梯度法
2019/07/03 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
校园安全广播稿
2014/02/08 职场文书
大学生心理活动总结
2014/07/04 职场文书
2014年内勤工作总结
2014/11/24 职场文书
新店开张宣传语
2015/07/13 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
css height属性中的calc方法详解
2021/06/03 HTML / CSS
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL