Python:根据时间格式文件名删除指定csv文件,只保留最近两天及以后的文件

本篇文章代码执行的前提是所有文件名的格式要统一,要实现的效果是删除昨天之前的csv文件,如有其他情况也可参考本文做适当修改。

注意:一定要根据自己的需求,设置好需要删除文件的条件以及目录,否则很容易误删其他文件。

原来目录中的文件有:

执行代码:

import os
import re
from datetime import date, timedelta

# pwd = os.getcwd()  # 获得当前目录
# 所需操作文件所在路径
filePath = 'E:\work\python\DeleteCsvByDate\wenjian\\'
# 获取该目录下文件名
file_list = os.listdir(filePath)
# 获取今天和昨天时间
today = (date.today()).strftime("%Y-%m-%d")
yesterday = [(date.today() + timedelta(days=-1)).strftime("%Y-%m-%d")]
three_days_go = (date.today() + timedelta(days=-2)).strftime("%Y-%m-%d")

# 计算年月日累计和
def calculation(data):
    value = str(data[0]).split('-')
    year = int(value[0])
    month = int(value[1])
    day = int(value[2])
    sum = year * 1000 + month * 100 + day * 10
    return sum


yesterday_sum = calculation(yesterday)
# 遍历文件名
for name in file_list:
    extension = name.split(".")[1]
    # 根据扩展名判断是否是csv文件
    if extension == 'csv':
        # 用正则表达式提取时间
        pattern = re.compile(r'\d{4}-\d{2}-\d{2}')
        time_value = pattern.findall(name)
        if time_value != []:
            sum = calculation(time_value)
        if sum < yesterday_sum:
            os.remove(os.path.join(filePath, name))
    else:
        print(f"文件'{name}'的扩展名不是csv")
# 删除之后目录下的文件名
end_file_list = os.listdir(filePath)
for item in end_file_list:
    print(f"执行删除操作之后目录下的文件名:{item}")

输出结果:

 执行代码后该目录中所剩文件:

删除文件参考文章链接为:python 删除指定路径下的csv文件_Candy_Lena的博客-CSDN博客_python 删除csv文件

关于正则表达式部分参考文章链接为:python正则表达式从字符串中提取数字_赵大宝的博客-CSDN博客_python提取字符串中的数字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值