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 文件操作技巧(File operation) 实例代码分析
Aug 11 Python
Python中实现结构相似的函数调用方法
Mar 10 Python
分析Python中设计模式之Decorator装饰器模式的要点
Mar 02 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
python实现银行管理系统
Oct 25 Python
python集成开发环境配置(pycharm)
Feb 14 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
Django实现内容缓存实例方法
Jun 30 Python
解决python运行效率不高的问题
Jul 20 Python
用于ETL的Python数据转换工具详解
Jul 21 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
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
jquery实现文本框的禁用和启用
2016/12/07 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
React diff算法的实现示例
2018/04/20 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
Python中的yield浅析
2014/06/16 Python
使用Python写个小监控
2016/01/27 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python机器学习库常用汇总
2017/11/15 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
python 遍历pd.Series的index和value
2019/11/26 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
python 写一个水果忍者游戏
2021/01/13 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
家长会演讲稿
2014/04/26 职场文书
甜品店创业计划书
2014/09/21 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis