python 创建文件夹-保留N天内的文件夹

代码纯本人自己封装,可直接cv使用 ,并且有非常详细的注释。


前言

例如创建日志或者是保存某些爬虫数据保存到本地的情况


一、创建文件夹-保留N天内的文件夹?

python自动创建文件夹  +  检查文件夹、文件是否已经存在  +  保存n天内的文件夹

二、使用步骤

1.引入库

代码如下(示例):

import os
import re
from datetime import datetime
import time
import shutil

2.示例

代码如下(示例):

import os
import re
from datetime import datetime
import time
import shutil


def log_project_path(name):
    """
    创建存储日志的文件夹
    :return: [存储日志文件夹路径,文件日志名称]
    root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 获取项目的根目录
    """

    # 获取项目的当前目录
    root_path = os.path.dirname(__file__)

    # 初始化当前时间
    now_time = datetime.now()

    # 格式化时间字符串
    os_name_time = now_time.strftime("%Y-%m-%d")

    # 定义日志文件夹名称
    log_path = os.path.join(root_path, name + '-Log-{}'.format(os_name_time))

    # 日志文件最终名称
    txt_name_time = now_time.strftime("%Y-%m-%d %X").replace(':', '-')

    # 判断文件夹已经创建的话则不在创建
    if not os.path.exists(log_path):
        os.mkdir(log_path)

    return [log_path,txt_name_time]




def deletefile(name,day_n=7):
    """
    保留 day_n 天内的日志文件
    :param name: 日志名称
    :param day_n: 保留天数
    :return:
    """
    # 要删除路径
    path = os.path.dirname(__file__)

    # 循环打印所有文件夹名称
    for eachfile in os.listdir(path):
        # 筛选出日志文件
        filename = os.path.join(path, eachfile) if name + '-Log-' in eachfile else ''
        if filename:
            # 剥离当前文件后缀时间-   年月日
            time_re_time = unix_time(dt = re.findall('-Log-(\d+-\d+-\d+)', filename).pop())
            # 设置删除多久之前的文件
            endfiletime = time.time() - 3600 * 24 * day_n
            # 时间戳对比
            if endfiletime > time_re_time:
                try:
                    # 删除空文件夹
                    os.rmdir(filename)
                except OSError as o:
                    # 删除非空文件夹
                    shutil.rmtree(filename)

                print("删除文件 %s 成功" % filename)

            continue

        continue

    return



def unix_time(dt):
    # 转换成时间数组
    timeArray = time.strptime(dt, "%Y-%m-%d")
    # 转换成时间戳
    timestamp = int(time.mktime(timeArray))
    return timestamp


总结

如果本文对你有所帮助,请留下一个小小的赞吧!你的简单支持,我的无限创作动力!

提示:代码纯本人自己封装,可直接cv使用 ,并且有非常详细的注释。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值