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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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)

  

posted @   iDEAAM  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
历史上的今天:
2009-10-31 正则表达式规则
点击右上角即可分享
微信分享提示