python实现批量生成带内容的文件夹

我工作的时候经常遇到这个问题:需要批量生成带内容的文件夹来辅助工作。

我有8种不同名字的文件夹

每个文件夹下面都有以日期命名的文件夹

日期文件夹里面会记录我当天需要记录的东西。

我需要实现的功能是:

1.输入一个天数N,生成N天以前的文件

在test文件夹里的子文件夹test*里面:

2.复制当天的文件夹

3.重命名:以日期命名

以下是我自己画的文件夹层级结构图:

(日期文件夹中的文件没有写出来,下面的全部都是文件夹)

以下是代码实现: 

1.弹窗选择文件夹:E:\Test

2.输入天数N

3.获取当天的文件夹名

4.循环复制,改名

import datetime
import shutil
import tkinter
from tkinter import filedialog
from tkinter import simpledialog
import os
import fnmatch
import tkinter.messagebox as me

root=tkinter.Tk()
root.withdraw()
rootPath=filedialog.askdirectory()
days=int(simpledialog.askstring(title=" ",prompt="生成XX天以前的文件,\n如果某个test文件夹原本没有当天文件,那么不会生成之前的文件"))
day=1
dirLogToday=datetime.datetime.now().date()

while day<=days:
    for dirpaths,dirnames,filenames in os.walk(rootPath):
        for dirname in dirnames:
            if fnmatch.fnmatch(dirname,"*-*-*"):
                dirPath=os.path.join(dirpaths,dirname)
                savePath=os.path.join(dirpaths,str(dirLogToday-datetime.timedelta(day)))
                if not os.path.exists(savePath):
                    shutil.copytree(dirPath,savePath)
    day = day + 1

me.showinfo("结束弹窗","操作完成!!!!!!")

在while循环里:

1.用walk获取E:\Test中所有文件夹路径、文件夹名字,文件名

2.在所有文件夹名中匹配文件名为*-*-*的文件夹

3.用一个变量dirPath记录这个文件夹的路径,便于后面的复制。比如:E:\Test\Test1\2023-04-20

4.用变量savePath记录改名后的文件夹路径(此处通过循环将day的值改变,从而通过当天日期day的值来确定生成文件的日期)比如:E:\TestTest1\2023-04-19

5.如果循环到一个日期的时候,发现该文件夹中不存在这个日期命名的文件,就把当天的文件夹改名复制,否则,就不复制改名生成。

6.复制完成后弹窗提醒

如果需要生成确定日期的文件夹,可使用日期计算器来计算两个日期之间的天数。

具体参考我另外一篇:

python实现简单的日期计算器_朝一爱学习的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值