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如何实现excel数据添加到mongodb
Jul 30 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
Python selenium抓取微博内容的示例代码
May 17 Python
便捷提取python导入包的属性方法
Oct 15 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
Pandas把dataframe或series转换成list的方法
Jun 14 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
python两个list[]相加的实现方法
Sep 23 Python
Python Charles抓包配置实现流程图解
Sep 29 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使用number_format函数截取小数的方法分析
2016/05/27 PHP
linux下php上传文件注意事项
2016/06/11 PHP
php微信开发之图片回复功能
2018/06/14 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
Python单元测试实例详解
2018/05/25 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
Python编写万花尺图案实例
2021/01/03 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
小区门卫管理制度
2014/01/29 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
AJAX学习笔记
2021/05/18 Javascript
Python基础之进程详解
2021/05/21 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python
MySQL创建管理LIST分区
2022/04/13 MySQL