python脚本删除n天前文件可用于windows,linux并且支持跨平台

脚本如下:

#!/usr/local/python/bin/python
# -*-coding=utf8 -*-
import time
import os, sys

# 设置删除多少天前的文件
N = 3
#要删除路径
path = r‘/tmp/wry/abc‘

def deletefile(path):
    for eachfile in os.listdir(path):
        filename = os.path.join(path, eachfile)
        if os.path.isfile(filename):
            lastmodifytime = os.stat(filename).st_mtime
            # 设置删除多久之前的文件
            endfiletime = time.time() - 3600 * 24 * N
            if endfiletime > lastmodifytime:
                #if filename[-4:] == ".log":
                os.remove(filename)
                print "删除文件 %s 成功" % filename
        # 如果是目录则递归调用当前函数
        elif os.path.isdir(filename):
            deletefile(filename)

if __name__ == ‘__main__‘:
    deletefile(path)

运行效果如下:

在windows下运行python需要脚本,主要修改输出字符,否则为乱码:

#!/usr/local/python/bin/python
# -*-coding=utf8 -*-
import time
import os, sys

#设置删除多少天前的文件
N = 3
path = r"E:\0工作\02日常工作\linux脚本\删除N天前脚本\测试".decode(‘utf-8‘).encode(‘GB2312‘)

def deletefile(path):
    for eachfile in os.listdir(path):
        filename = os.path.join(path, eachfile)
        if os.path.isfile(filename):
            lastmodifytime = os.stat(filename).st_mtime
            #设置删除多久之前的文件
            endfiletime = time.time() - 3600 * 24 * N
            if endfiletime > lastmodifytime:
                #if filename[-4:] == ".log":
                os.remove(filename)
                print "删除文件 %s 成功".decode(‘utf-8‘).encode(‘GB2312‘) % filename
        #如果是目录则递归调用当前函数
        elif os.path.isdir(filename):
            deletefile(filename)

if __name__ == ‘__main__‘:
    deletefile(path)

输出结果如下

删除文件 E:\0工作\02日常工作\linux脚本\删除N天前脚本\测试\abc\2\_应用架构设计 V1.1.docx 成功
删除文件 E:\0工作\02日常工作\linux脚本\删除N天前脚本\测试\abc\2\运维信息表.xlsx 成功
删除文件 E:\0工作\02日常工作\linux脚本\删除N天前脚本\测试\abc\2\新建文件夹\应用架构设计 V1.1.docx 成功
删除文件 E:\0工作\02日常工作\linux脚本\删除N天前脚本\测试\abc\2\新建文件夹\启停文档.xlsx 成功
删除文件 E:\0工作\02日常工作\linux脚本\删除N天前脚本\测试\abc\2\启停文档.xlsx 成功
删除文件 E:\0工作\02日常工作\linux脚本\删除N天前脚本\测试\abc\应用架构设计 V1.1.docx 成功
删除文件 E:\0工作\02日常工作\linux脚本\删除N天前脚本\测试\abc\运维信息表.xlsx 成功
删除文件 E:\0工作\02日常工作\linux脚本\删除N天前脚本\测试\abc\运维知识库启停文档.xlsx 成功

参考:python 删除2天前后缀为.log的文件
python删除N天前文件

原文地址:http://blog.51cto.com/weiruoyu/2319806

时间: 2024-10-20 14:56:26

python脚本删除n天前文件可用于windows,linux并且支持跨平台的相关文章

shell脚本删除N天前的文件夹-----附linux和mac上date命令的不同

背景: 每日构建的东西,按日期放到不同的文件夹里.如今天的构建放到2015-06-01里,明天的就放到2015-06-02里,依次类推.时间久了,需要一个脚本删除N天前的文件夹.(本例中N=7,即删除一周前的构建). 下面直接上代码,linux版: #! /bin/bash historyDir=~/test/ today=$(date +%Y-%m-%d) echo "---------today is $today-----------" tt=`date -d last-week

Windows定时删除某天前文件的批处理脚本

备注:1.如XP下因为没有forfiles.exe,拷贝windows2003下的forfiles.exe文件到XP的system32目录即可使用forfiles命令.  2.该文档适用于windows客户端操作系统xp win7/8/10,windows服务器端操作系统 server 2003/2008/2012/2016.3.如有错漏,烦劳指出,谢谢! forfiles.exe及帮助 描述:     选择一个文件(或一组文件)并在那个文件上执行一个命令.这有助于批处理作业. 语法: forf

python脚本删除n天之前的文件

管理Linux经常用到python脚本,然后写了脚本后,经常为了生成的文件占用磁盘空间而犯愁,这些写个函数以方便以后使用: def rmdaybefore(pfile, days):     """     Delete pfile diectory days before files below     :param pfile: local path     :param days: before days     :return: a list os.listdir p

postgreSQL备份脚本删除3天前备份同时压缩昨天备份

脚本功能: 系统环境:SUSE Linux Server 11.3 X64 1.删除3天前压缩文件(.bak.tar.gz) 2.备份数据库(未压缩文件.bak) 3.压缩昨天数据库备份文件(.bak.tar.gz),删除昨天数据库备份未压缩文件(.bak) #!/bin/bash export PATH=$PATH:/usr/local/pgsql/bin DATE=`date +%Y_%m_%d_%H` YESDAY=`date -d "yesterday" +%Y_%m_%d_%

forfiles命令批量删除N天前文件

在整理手上几台SQL SERVER 2000的数据库备份时,一方面为了方便快速还原数据库,另外一方面为了备份冗余.备份方式统一(先备份到本地,然后收上磁带),将以前通过Symantec Backup Exec直接备份上带的作业改成了如下方式: Step 1: 通过数据库维护计划将备份生成在本地磁盘M,完整备份保留2天,事务日志备份保留3天 M:\DB_BACKUP\FULL_BACKUP M:\DB_BACKUP\LOG_BACKUP Step 2:  备份完成后通过Symantec Backu

python删除N天前文件

#/usr/bin/env python # -*- coding:utf-8 -*- #Author='Jun' import os import sys import time def removefiles(beftime, defalutpath='.'):     for i in os.listdir(path):         filename = path + os.sep + i         if os.path.getmtime(filename) < beftime:

[转载]python脚本删除一定时间以外的文件

1 import os; 2 import sys; 3 import time; 4 5 class DeleteLog: 6 def __init__(self,filename,days): 7 self.filename=filename; 8 self.days=days; 9 10 def delete(self): 11 if os.path.exists(self.filename)==False: 12 print(self.filename+ ' is not exists!

Linux 按时间批量删除文件(删除N天前文件)

需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据. 可以使用下面一条命令去完成: find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \; 这个是根据时间删除. 下面简要解释一下,这句shell命令: find /home/lifeccp/dicom/studies -mtime +21 -name "*.*"

写个python脚本,处理bitmap.fnt文件,将信息存放入.csv文件中

file_util.py #!/usr/bin/python # encoding:utf-8 r''' 处理文件 ''' import os __author__ = 'andrew' def list_files_with_filter(root, suffix): hint="list_files_with_filter" for f in os.listdir(root): if (f.endswith(suffix)): path = os.sep.join((root, f