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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。