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和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
Python 打印中文字符的三种方法
Aug 14 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
使用Python自动化破解自定义字体混淆信息的方法实例
Feb 13 Python
Python numpy线性代数用法实例解析
Nov 15 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
May 26 Python
python中有帮助函数吗
Jun 19 Python
python实现移动木板小游戏
Oct 09 Python
详解Python模块化编程与装饰器
Jan 16 Python
Python采集股票数据并制作可视化柱状图
Apr 04 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/02/26 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
arguments对象
2006/11/20 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
javascript实现下雨效果
2017/03/27 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
js数组去重的方法总结
2019/01/18 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
python查看微信好友是否删除自己
2016/12/19 Python
利用django如何解析用户上传的excel文件
2017/07/24 Python
浅析使用Python操作文件
2017/07/31 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
爱心捐款倡议书范文
2014/05/12 职场文书
领导班子四风对照检查材料
2014/09/23 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
详解Laravel制作API接口
2021/05/31 PHP
Python中Selenium对Cookie的操作方法
2021/07/09 Python