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 04 Python
Python实现竖排打印传单手机号码易撕条
Mar 16 Python
python判断图片宽度和高度后删除图片的方法
May 22 Python
Python基于TCP实现会聊天的小机器人功能示例
Apr 09 Python
python判断输入日期为第几天的实例
Nov 13 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
利用python求积分的实例
Jul 03 Python
Django MEDIA的配置及用法详解
Jul 25 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
python 标准差计算的实现(std)
Jul 29 Python
pycharm新建Vue项目的方法步骤(图文)
Mar 04 Python
python使用torch随机初始化参数
Mar 22 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制作的意见反馈表源码
2007/03/11 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
Python实现简单拆分PDF文件的方法
2015/07/30 Python
python算法题 链表反转详解
2019/07/02 Python
Python 3 判断2个字典相同
2019/08/06 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
Python3.9新特性详解
2020/10/10 Python
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
PyQt QMainWindow的使用示例
2021/03/24 Python
公司业务主管岗位职责
2013/12/07 职场文书
娱乐节目策划方案
2014/06/10 职场文书
推广普通话标语
2014/06/27 职场文书
高中学校对照检查材料
2014/08/31 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server
app场景下uniapp的扫码记录
2022/07/23 Java/Android