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 15 Python
Python命令行参数解析模块getopt使用实例
Apr 13 Python
Python使用asyncio包处理并发详解
Sep 09 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
Python 处理文件的几种方式
Aug 23 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
django在开发中取消外键约束的实现
May 20 Python
Python 绘制可视化折线图
Jul 22 Python
Python 列表反转显示的四种方法
Nov 16 Python
python自动生成证件号的方法示例
Jan 14 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
ThinkPHP中where()使用方法详解
2016/04/19 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
javascript下string.format函数补充
2010/08/24 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
理解Koa2中的async&await的用法
2018/02/05 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
深入浅析python 中的匿名函数
2018/05/21 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
婚前协议书怎么写
2014/04/15 职场文书
课外科技活动总结
2014/08/27 职场文书
入党现实表现材料
2014/12/23 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
Python编写冷笑话生成器
2022/04/20 Python
pycharm无法安装cv2模块问题
2022/05/20 Python