python 实现保存最新的三份文件,其余的都删掉
我就废话不多说了,直接上代码吧!
"""
对于每天存储文件,文件数量过多,占用空间
采用保存最新的三个文件
"""
fromairflowimportDAG
fromairflow.operators.python_operatorimportPythonOperator
fromairflow.modelsimportVariable
fromsctetl.airflow.utilsimportdateutils
fromdatetimeimportdatetime,timedelta
importlogging
importos
importshutil
"""
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))
defkeep_three_day():
path=os.path.join(base_dir,data_dir)
date_cates=os.listdir(path)
forcateindate_cates:
p=os.path.join(base_dir,data_dir,cate)
ifos.path.isdir(p):
dir_names=os.listdir(p)
dir_names.sort()
foriindir_names[:-keep]:
logging.info("删除目录{path}".format(path=os.path.join(p,i)))
shutil.rmtree(os.path.join(p,i))
withdag:
keep_three_file=PythonOperator(task_id="keep_three_file",python_callable=keep_three_day(),dag=dag)
keep_three_file
以上这篇python实现保存最新的三份文件,其余的都删掉就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短