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调用百度语音识别api
Aug 30 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
基于django传递数据到后端的例子
Aug 16 Python
Python3 JSON编码解码方法详解
Sep 06 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
Sep 26 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
基于YUV 数据格式详解及python实现方式
Dec 09 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
Mar 06 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 Python
详解OpenCV获取高动态范围(HDR)成像
Apr 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目录操作函数之获取目录与文件的类型
2010/12/29 PHP
php中常用字符串处理代码片段整理
2011/11/07 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
php自定义错误处理用法实例
2015/03/20 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
客户端静态页面玩分页
2006/06/26 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
2017/12/21 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
行政副总岗位职责
2014/02/23 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python