python--自动删除文件

1、目的:定期自定删除7天前的数据
python脚本如下:

#coding=utf-8
import os,time,datetime

#需定时删除的目录的上一层路径
data_dir="/data"
#获取本地系统上周的时间
date = os.popen("date -d '(date +%Y%m%d) -7 days' +%Y-%m-%d").read().strip()
#将date转换成时间格式
t2 = time.strptime(date,'%Y-%m-%d')
t2 = datetime.datetime(*t2[:3])
#初始化文件名称列表
dir_name = []
#循环取出目录的绝对路径
for filename in os.listdir(data_dir):
        filepath = os.path.join(data_dir,filename)
    #只对目录进行操作,获取目录的最后修改时间,并把最后修改时转换成时间格式
        if os.path.isdir(filepath):
        dir_date = os.popen("stat %s|sed -n '7p'|awk '{print $1}'|awk -F ':' '{print $2}'" %filepath).read().strip()
        t = time.strptime(dir_date,'%Y-%m-%d')
        t1 = datetime.datetime(*t[:3])
        if t1>t2:
            print "目录%s近期在用,无法删除!" %filename
        elif t2>t1:
            print "目录%s已废弃超过一周,正在删除%s" %(filename,filepath)
            time.sleep(10)
            os.system("rm -rf %s" %filepath)
        else:
            print "目录%s废弃未超过一周,等待下次检测...." %filename

服务器的crontab配置如下:

0 0 * * * /usr/bin/python /data/delete_data.py >>/data/delete_data.log 2>&1
posted @ 2015-11-18 11:58  Jim.Deng  阅读(2472)  评论(0编辑  收藏  举报