python定期删除文件夹下的过期文件

首先声明一下其中所用的函数

  • datetime.datetime.now() #获取当前时间,返回值的格式类似 datetime.datetime(2017, 12, 14, 1, 29, 24, 406538)
  • datetime.timedelta() #设定两个时间之间的间隔,用于时间计算,可以设置的单位包括:(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0),默认都为0,timedelta内部只能存储days,seconds,microseconds,其他参数的值会自动按如下规则进行转换:
    1 millisecond(毫秒)转换成 1000 microseconds(微秒)
    1 minute 转换成 60 seconds
    1 hour 转换成 3600 seconds
    1 week转换成 7 days
     
  • os.path.getctime() #获取文件的创建时间,返回值的格式为一个巨大的浮点数,为1970年1月1日到这个创建时间所历经的秒数
  • datetime.datetime.fromtimestamp() #将os.path.getctime() 转换为跟datetime.datetime.now()一样的格式,以进行比较计算

代码实现如下:

import os, datetime
dirToBeEmptied = 'D:\\ceshi' #需要清空的文件夹
ds = list(os.walk(dirToBeEmptied)) #获得所有文件夹的信息列表
delta = datetime.timedelta(minutes=1) #设定365天前的文件为过期
now = datetime.datetime.now() #获取当前时间
# print(ds)
# print(now)
# ctime = datetime.datetime.fromtimestamp(os.path.getctime("D:\\ceshi\\1")) #获取文件创建时间
# print(ctime)
for d in ds: #遍历该列表
    print(d)
    os.chdir(d[0]) #进入本级路径,防止找不到文件而报错
    if d[2] != []: #如果该路径下有文件
        for x in d[2]: #遍历这些文件
            print(x)
            ctime = datetime.datetime.fromtimestamp(os.path.getctime(x)) #获取文件创建时间
            print(ctime)
            if ctime < (now-delta): #若创建于delta天前
                os.remove(x) #则删掉

 注:

此功能只能实现删除文件夹里的过期文件,如果文件夹为空,空文件夹不会删除

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值