python--自动删除文件

来源:互联网 发布:守望先锋性能数据vrm 编辑:程序博客网 时间:2024/06/05 00:53

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

#coding=utf-8import 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
0 0