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中利用原始套接字进行网络编程的示例
May 04 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
python实现连接mongodb的方法
May 08 Python
python处理二进制数据的方法
Jun 03 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
利用python程序帮大家清理windows垃圾
Jan 15 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
Jul 06 Python
使用Python爬取最好大学网大学排名
Feb 24 Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
如何在python中写hive脚本
Nov 08 Python
使用tensorflow实现矩阵分解方式
Feb 07 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序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
angular 服务随记小结
2019/05/06 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
python中sys.argv参数用法实例分析
2015/05/20 Python
Python 的描述符 descriptor详解
2016/02/27 Python
用Python写冒泡排序代码
2016/04/12 Python
Python中动态创建类实例的方法
2017/03/24 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
中专自我鉴定范文
2013/10/16 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
好家长事迹材料
2014/01/23 职场文书
市场营销管理制度
2014/01/29 职场文书
中学家长会邀请函
2014/02/03 职场文书
志愿者服务感言
2014/02/27 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书