首页 > 编程语言 >python 备份文件,从 D盘 到Z盘。并且保留15天的文件

python 备份文件,从 D盘 到Z盘。并且保留15天的文件

时间:2024-10-31 11:08:37浏览次数:1  
标签:15 python 备份文件 文件夹 path folder os

备份文件,从 D盘 到Z盘。并且保留15天的文件

import os
import shutil
from datetime import datetime, timedelta

def move_and_clean_folders(a_folder, b_folder, keep_count=15):
    try:
        # 获取前两天的日期
        yesterday = datetime.now() - timedelta(days=2)
        yesterday_str = yesterday.strftime('%Y-%m-%d')

        # 构建昨天的文件夹路径
        source_folder = os.path.join(a_folder, yesterday_str)

        # 检查昨天的文件夹是否存在
        if not os.path.exists(source_folder):
            print("Yesterday's folder does not exist.")
            return

        # 将昨天的文件夹剪切到 b 文件夹
        destination_folder = os.path.join(b_folder, yesterday_str)
        shutil.move(source_folder, destination_folder)
        print(f"Moved folder {source_folder} to {destination_folder}")

        # 在 b 文件夹中保留最近的 keep_count 个文件夹,按文件名排序
        folder_list = sorted([os.path.join(b_folder, d) for d in os.listdir(b_folder)
                              if os.path.isdir(os.path.join(b_folder, d))], key=lambda x: os.path.basename(x))
        
        # 删除除了最新的 keep_count 个文件夹之外的所有文件夹
        for folder in folder_list[:-keep_count]:
            shutil.rmtree(folder)
            print(f"Deleted folder {folder}")

    except Exception as e:
        print(f"An error occurred: {e}")

# 设置文件夹路径
a_folder = r"D:\自动备份\备份文件2"
b_folder = r"z:\自动备份\备份文件2"

# 调用函数 业务库
move_and_clean_folders(a_folder, b_folder, 15)


# 设置文件夹路径 挖掘库
a_folder = r"D:\自动备份\备份文件1"
b_folder = r"z:\自动备份\备份文件1"

# 调用函数
move_and_clean_folders(a_folder, b_folder, 15)

  

标签:15,python,备份文件,文件夹,path,folder,os
From: https://www.cnblogs.com/haoliansheng/p/18517329

相关文章

  • 轻松掌握在AirtestIDE中切换为本地Python环境的详细指南
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途一、前言最近有一些新入门的小伙伴们都在问如何在AirtestIDE内使用更多的依赖库,为了解决这个问题,我们建议将AirtestIDE的Python环境切换为本地Python环境,并在本地......
  • 在 Odoo 中,确实可以通过 SQL 语句来提升一些功能逻辑的处理效率。将 SQL 转为 Python
    1.使用env.cr.execute执行SQL语句OdooORM提供的env.cr.execute()可以直接执行SQL语句,这样可以在Python代码中调用SQL逻辑,结合Odoo的业务模型实现复杂的逻辑操作。execute()方法适合处理批量数据更新、复杂查询等。示例:批量更新customer_id字段defupdate_......
  • PME算法简单Python实现
    技术背景在前面的两篇博客中,我们分别介绍了Ewald算法求解静电势能和基于格点拉格朗日插值法的PME算法。在多种计算优化算法(Ewald求和、快速傅里叶变换、格点拉格朗日插值、截断近似)的加持下,使得我们不需要在实空间进行大量的迭代,也可以得到一个近似收敛的静电势能结果。相关的PME......
  • Python数据分析NumPy和pandas(十七、pandas 二进制格式文件处理)
    以二进制格式存储(或序列化)数据的一种简单方法是使用Python的内置pickle模块。同时,pandas构造的对象都有一个to_pickle方法,该方法以pickle格式将数据写入磁盘。我们先把之前示例用到的ex1.csv文件加载到pandas对象中,然后将数据以二进制pickle格式写入examples/frame_p......
  • Python数据分析NumPy和pandas(十六、文本格式数据的读取与存储:csv、json、xml和html)
    一、分段读取文本文件在处理非常大的文件时,未找到合适的数据处理方法前,我们一般希望只读取文件的一小部分或遍历文件的较小块来做预处理或参考。这种情况可以采用分段读取文本文件的方式。我们加载一个10000行的ex6.csv文件,其内容如下:一般情况下,对于pandas读取大文件数据时......
  • python进度库-tqdm的自定义能力
    今天罗列几个关于tqdm常见自定义场景。并尝试对动态更新描述信息做简单的封装,积累一些通用模块。tqdm 提供了丰富的自定义选项,可以让你根据不同的需求调整进度条的外观和行为,接下来看看他的自定义能力。tqdm函数参数:desc:进度条的描述信息。total:总迭代次数(默认为None......
  • 第15天预编译
    预编译指令编译四步预编译->编译->汇编->链接预编译:整理代码,检查代码格式问题C语言文件分类运行时是否分配空间.cC文件->源文件:存储代码的实体运行需要空间.hH文件->头文件:存储各种声明声明只是为了告知有什么东西在当前的模块文件.c中定义#include文件包含#......
  • Python 进度条模块tqdm
    1.简介在处理大规模数据或长时间运行的任务时,了解任务的进度对于用户体验和调试来说非常重要。tqdm是一个用于显示进度条的Python库,它能将任务的进度信息直观地展示出来。无论是遍历一个大型列表、处理批量数据,还是下载文件,tqdm都能轻松实现进度条显示,并且与Python的标准......
  • python3 tcp_client
    tcp_client.py#-*-coding:utf-8-*-#tcp客户端,使用单例模式实现#create:2023-06-26importsocketimporttimeimporttracebackclassTCPConnection:__instance=None#存储单例对象的类属性def__new__(cls,host,port):"""实现......
  • Python 自动化运维:日志与监控的深度探索
    Python自动化运维:日志与监控的深度探索目录......