python 实现保存最新的三份文件,其余的都删掉


Posted in Python onDecember 22, 2019

我就废话不多说了,直接上代码吧!

"""
对于每天存储文件,文件数量过多,占用空间
采用保存最新的三个文件
"""
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from airflow.models import Variable
from sctetl.airflow.utils import dateutils
from datetime import datetime,timedelta
import logging
import os
import shutil
"""
base_dir = "/data"
data_dir = "/gather"
"gather下边存在不同的文件夹"
"/data/gather/test"
"test路径下有以下文件夹"
"20180812、20180813、20180814、20180815、20180816"
"""
 
base_dir = Variable.get("base_dir")
data_dir = Variable.get("data_dir")
keep = 3
 
default_arg = {
  "owner":"airflow",
  "depends_on_past":False,
  "start_date":dateutils.get_start_date_local(2018,8,27,18,5),
  "email":[''],
  "email_on_failure":False,
  "email_on_retry":False,
  "retries":1,
  "retry_delay":timedelta(minutes=5)
}
 
dag = DAG(dag_id="keep_three_day",default_args=default_arg,schedule_interval=dateutils.get_schedule_interval_local(18,5))
 
def keep_three_day():
  path = os.path.join(base_dir, data_dir)
  date_cates = os.listdir(path)
  for cate in date_cates:
    p = os.path.join(base_dir, data_dir, cate)
    if os.path.isdir(p):
      dir_names = os.listdir(p)
      dir_names.sort()
      for i in dir_names[:-keep]:
        logging.info("删除目录 {path}".format(path=os.path.join(p, i)))
        shutil.rmtree(os.path.join(p, i))
 
with dag:
  keep_three_file = PythonOperator(task_id="keep_three_file",python_callable=keep_three_day(),dag=dag)
 
keep_three_file

以上这篇python 实现保存最新的三份文件,其余的都删掉就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
轻松掌握python设计模式之策略模式
Nov 18 Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 Python
老生常谈Python进阶之装饰器
May 11 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
python如何通过实例方法名字调用方法
Mar 21 Python
Numpy数组转置的两种实现方法
Apr 17 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 Python
python使用socket 先读取长度,在读取报文内容示例
Sep 26 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
Django通过设置CORS解决跨域问题
Nov 26 Python
详解python的内存分配机制
May 10 Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 #Python
python 操作hive pyhs2方式
Dec 21 #Python
python 消费 kafka 数据教程
Dec 21 #Python
python kafka 多线程消费者&手动提交实例
Dec 21 #Python
Python序列类型的打包和解包实例
Dec 21 #Python
Python 使用threading+Queue实现线程池示例
Dec 21 #Python
Python CSV文件模块的使用案例分析
Dec 21 #Python
You might like
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
Knockoutjs的环境搭建教程
2012/11/26 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
js实现查询商品案例
2020/07/22 Javascript
Python中zfill()方法的使用教程
2015/05/20 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
PyTorch中Tensor的拼接与拆分的实现
2019/08/18 Python
Python logging模块handlers用法详解
2020/08/14 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
电子商务专业推荐信范文
2013/12/02 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
装修协议书范本
2014/04/21 职场文书
先进人物事迹材料
2014/12/29 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书