惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
D
Docker
Vercel News
Vercel News
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
爱范儿
爱范儿
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏

博客园 - iDEAAM

logstash 如何从oracle 导入 pgsql IIS如何部署python django项目 IIS 如何部署net8 和 如何配置反向代理 ARR、URL Rewrite git 如何排除 bin obj nginx 配置 自签名https证书 powershell 计划任务 定时任务 如何调用get接口 使用nssm在windows服务器上部署nodejs 退出远程桌面不锁屏 PDF 转 Excel 非常完美的java包 sublime 选择有规律的数据,同时快速编辑多行内容 去除重复行或者只保留唯一值 C#中 同步方法调用异步方法不死锁的方法 async await task windows 2008 r2 iis https 配置方法 vue js中,利用json数据临时生成一个可下载csv的功能 git常用命令 C#下载远程文件并打包 从 ASP.NET MVC 和 Web API 升级到 ASP.NET Core MVC c# 把现有图片顶部top50px 处理成白色 C# asp.net开源插件推荐:PdfiumViewer ( pdf 转成 图片png pdf convert to image ) 在asp.net mvc中使用了owin startup如何使用 swagger插件
python 备份文件,从 D盘 到Z盘。并且保留15天的文件
iDEAAM · 2024-10-31 · via 博客园 - iDEAAM

备份文件,从 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)