zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/lincj/p/5616216.html
Copyright © 2011-2022 走看看