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绘图库Matplotlib的安装
Jul 03 Python
Python中正则表达式的详细教程
Apr 30 Python
python清除字符串里非字母字符的方法
Jul 02 Python
Python中的条件判断语句与循环语句用法小结
Mar 21 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 Python
Python实现八皇后问题示例代码
Dec 09 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
python中有帮助函数吗
Jun 19 Python
解决tensorflow 释放图,删除变量问题
Jun 23 Python
python excel和yaml文件的读取封装
Jan 12 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 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 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP钩子实现方法解析
2019/05/21 PHP
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
Python中字典的setdefault()方法教程
2017/02/07 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
python3实现微型的web服务器
2019/09/03 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
Python使用type动态创建类操作示例
2020/02/29 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
Python如何实现的二分查找算法
2020/05/27 Python
python新手学习可变和不可变对象
2020/06/11 Python
css3 transform属性详解
2014/09/30 HTML / CSS
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
电气自动化个人求职信范文
2014/02/03 职场文书
大学学风建设方案
2014/05/04 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
初中成绩单评语
2014/12/29 职场文书
投标邀请书范本
2015/02/02 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL