Python 实现指定时间间隔前文件的自动清理

山海之间
山海之间
发布时间:2026-10-12| 2人浏览过
原创

本文介绍如何使用 Python 遍历指定目录,筛选特定后缀的文件,并通过比较文件修改时间与当前系统时间的差值,自动删除超过指定时间间隔的过期文件。

实现逻辑概述

该脚本的核心流程包含五个步骤:首先遍历目标文件夹,其次根据文件后缀名筛选出指定类型的文件列表,接着逐个获取文件路径对应的修改时间,然后计算修改时间与系统当前时间的差值,最后若差值大于指定阈值则执行删除操作。

核心代码实现

以下是完整的 Python 脚本示例,包含时间差计算、文件筛选及删除逻辑:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Document: Remove Synctoycmd sync expired .tmp files"""
import os
import time
import datetime

def diff():
  '''time diff'''
  starttime = datetime.datetime.now()
  time.sleep(10)
  endtime = datetime.datetime.now()
  print "time diff: %d" % ((endtime-starttime).seconds)

def fileremove(filename, timedifference):
  '''remove file'''
  date = datetime.datetime.fromtimestamp(os.path.getmtime(filename))
  print date
  now = datetime.datetime.now()
  print now
  print 'seconds difference: %d' % ((now - date).seconds)
  if (now - date).seconds > timedifference:
    if os.path.exists(filename):
      os.remove(filename)
      print 'remove file: %s' % filename
    else:
      print 'no such file: %s' % filename

FILE_DIR = 'D:/'
if __name__ == '__main__':
  print 'Script is running...'
  #diff()
  while True:
    ITEMS = os.listdir(FILE_DIR)
    NEWLIST = []
    for names in ITEMS:
      if names.endswith(".txt"):
        NEWLIST.append(FILE_DIR + names)
    #print NEWLIST
    for names in NEWLIST:
      print 'current file: %s' % (names)
      fileremove(names, 10)
    time.sleep(10)
  print "never arrive..."

代码逻辑解析

脚本首先定义了 diff() 函数用于测试时间差计算,以及 fileremove() 函数用于执行具体的删除操作。在 fileremove() 中,通过 os.path.getmtime() 获取文件的修改时间戳,并将其转换为 datetime 对象。随后,获取当前系统时间,计算两者差值的秒数。若该差值大于传入的 timedifference 参数,且文件确实存在,则调用 os.remove() 进行删除。

主程序部分,脚本进入一个无限循环 while True,定期执行文件清理任务。它首先列出 FILE_DIR 目录下的所有项目,筛选出以 .txt 结尾的文件,构建文件路径列表。接着,遍历该列表,对每个文件调用 fileremove() 函数,并传入设定的时间阈值(示例中为 10 秒)。每次循环结束后,脚本通过 time.sleep(10) 暂停 10 秒,避免频繁占用系统资源。

注意事项

在实际应用中,建议将 FILE_DIR 修改为需要清理的实际目录路径,并根据业务需求调整文件后缀筛选条件(如 .txt)和时间阈值。此外,由于脚本包含无限循环,请确保在合适的后台环境中运行,或根据需要添加退出机制。

以上就是 Python 删除指定时间间隔之前文件的详细内容,更多关于 Python 文件操作与自动化脚本的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。