• python根据文件目录、文件类型和文件与当前时间差删除文件


    直接贴代码:

    删除某个目录下的文件,不遍历木路下文件夹下的文件,根据时间差删除,默认7天

    #!/usr/bin/python
    # -*- coding: gbk -*-
    import os
    import datetime
    import re
    import sys
    
    base_dir = 'E:\test\'
    file_ype = '.xls'
    days = 7
    
    def deleteFile(base_dir,file_ype,days):
     
        now_time = datetime.datetime.now() #获取当前时间
        os.chdir(base_dir) #切换到此目录
        cwd = os.getcwd() #得到当前目录
        files = os.listdir(os.getcwd()) # 列出目录中文件
        for file in files:
            if os.path.isfile(file):            
                file_name = os.path.basename(file) #获得文件名称
                pattern = re.compile(file_ype)
                match = len(pattern.findall(file_name)) #查找文件类型
    
                if match>0:
                    timestamp = os.path.getmtime(file) #得到文件的修改时间
                    date = datetime.datetime.fromtimestamp(timestamp) #时间格式化
                    if (now_time - date).days>=days: #now_time - date).days 计算时间差,相差天数
                        os.remove(file) #删除文件
                        print "文件删除成功,删除文件名称为: "+file 
    
    if __name__ == "__main__":
    
        #从命令行取参数,如命令行未传参数使用默认参数
        if len(sys.argv)>3:
            base_dir = sys.argv[1]
            file_ype = sys.argv[2]
            days = int(sys.argv[3])
            deleteFile(base_dir,file_ype,days)
        else:
            deleteFile(base_dir,file_ype,days)
    
    
    #从命令行传参数的方法:python  文件名称.py 参数1  参数2  参数3

    删除某个目录下包括目录下目录,遍历所有,删除符合后缀名的文件,默认删除7天前的文件

    #!/usr/bin/python
    # -*- coding: gbk -*-
    import os,datetime,re,sys
    
    base_dir = 'E:\test\'
    file_ype = '.xls'
    days = 7
    
    def del_files(base_dir,file_ype,days):
        now_time = datetime.datetime.now() #获取当前时间
        for cpath, dirs, files in os.walk(base_dir):#文件遍历
            for file in files:
                if file.endswith(file_ype): #过滤掉后缀名
                    timestamp = os.stat(os.path.join(cpath, file)).st_mtime #获取文件修改时间
                    date = datetime.datetime.fromtimestamp(timestamp) #时间转换
                    if (now_time - date).days>=days: #now_time - date).days 计算时间差,相差天数
                        os.remove(os.path.join(cpath, file)) #删除文件
                        print "文件删除成功,删除文件名称为: "+file 
    
    if __name__ == "__main__":
        #从命令行取参数,如命令行未传参数使用默认参数
        if len(sys.argv)>3:
            base_dir = sys.argv[1]
            file_ype = sys.argv[2]
            days = int(sys.argv[3])
            del_files(base_dir,file_ype,days)
        else:
            print '调用未传参数方法'
            del_files(base_dir,file_ype,days)
    
    #从命令行传参数的方法:python  文件名称.py 参数1  参数2  参数3
  • 相关阅读:
    获得二进制有多少个1
    读取txt数据
    int最大值
    oracle——数据表的相关操作——约束——各种约束详解
    oracle——数据表的相关操作——转移表空间
    oracle——数据表的相关操作——删除数据表
    oracle——数据表的数据查询——oracle高级函数
    oracle——数据表的相关操作——更新数据——update操作
    oracle——数据表的数据查询——oracle中的特殊表达式between and、in、like、is null、exists、all、some、any等
    oracle——数据表的数据查询——distinct 关键字、group by 字句、having子句
  • 原文地址:https://www.cnblogs.com/lincj/p/5616216.html
Copyright © 2020-2023  润新知