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 相关文章推荐
Python3使用requests包抓取并保存网页源码的方法
Mar 15 Python
在win和Linux系统中python命令行运行的不同
Jul 03 Python
python实现windows下文件备份脚本
May 27 Python
Python 获取主机ip与hostname的方法
Dec 17 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
python使用matplotlib绘制雷达图
Oct 18 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
python中的 zip函数详解及用法举例
Feb 16 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 Python
Django Admin后台添加数据库视图过程解析
Apr 01 Python
Django filter动态过滤与排序实现过程解析
Nov 26 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
8个必备的PHP功能实例代码
2013/10/27 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
将二维数组转为一维数组的2种方法
2014/05/26 PHP
Javascript开发包大全整理
2006/12/22 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
从setTimeout看js函数执行过程
2017/12/19 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
python 读写、创建 文件的方法(必看)
2016/09/12 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
Python调用服务接口的实例
2019/01/03 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
Python如何读写二进制数组数据
2020/08/01 Python
Python可以用来做什么
2020/11/23 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
2015年安全生产目标责任书
2015/01/29 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书