Python教程

python脚本分享:删除指定路径下日期大于XX天的文件或者文件夹

本文主要是介绍python脚本分享:删除指定路径下日期大于XX天的文件或者文件夹,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  • 代码
# coding=utf-8
import os
import time
import sys
import shutil

PATH = sys.argv[1]
MAX_DAY = sys.argv[2]


# 获取指定路径下的所有文件信息,并返回一个绝对路径的列表
def get_files(path):
    if os.path.exists(path):
        files = os.listdir(r"%s" % path)
        abs_path_list = []
        for file in files:
            try:
                filepath = os.path.join(os.path.abspath(path), file)
                abs_path_list.append(filepath)
            except Exception as e:
                print(e)
        return abs_path_list
    else:
        print('路径不存在')


# 传入路径,指定删除的天数前
def mtime_ge_day(filepath, day):
    if os.path.exists(filepath):
        if time.time() - os.path.getmtime(filepath) > 86400 * int(day):  # 当前时间 - 文件修改时间 > 天
            if os.path.isdir(filepath):
                shutil.rmtree(filepath)
                print('文件夹:%s 删除成功' % filepath)
            else:
                os.remove(filepath)
                print('文件:%s 删除成功' % filepath)
        else:
            return
    else:
        return


if __name__ == '__main__':
    file_path_list = get_files(PATH)
    for filepath in file_path_list:
        mtime_ge_day(filepath, MAX_DAY)

执行效果如下:
删除D:\DCBrowserDownloads\SanGuoZhanJiQuanJi_chs_setup\game下修改时间大于10天的数据:
python rm_ge_day.py "D:\DCBrowserDownloads\SanGuoZhanJiQuanJi_chs_setup\game" 10
在这里插入图片描述
注:os.removedirs(path)递归删除目录,只能删除空目录,所以使用shutil.rmtree进行删除

这篇关于python脚本分享:删除指定路径下日期大于XX天的文件或者文件夹的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!