You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python筛选目录中近24小时创建的文件列表

筛选过去24小时创建的文件的Python实现

嗨,我来帮你搞定这个问题!要从海量文件里筛选出过去24小时创建的,核心就是先算出24小时前的时间节点,再逐个检查文件的创建时间是否在这个节点之后。下面我给你两种实用的实现方案,你可以根据自己的习惯选:

方法一:使用os模块(兼容Python2/3)

这是比较传统的写法,适合习惯用os模块的同学:

import os
import time

# 计算24小时前的时间戳(单位:秒)
one_day_ago = time.time() - 24 * 3600

# 替换成你的目标目录和输出文件路径
target_directory = "/your/target/directory"
output_file_path = "recent_files.txt"

with open(output_file_path, "w") as output_file:
    # 遍历目标目录及其子目录
    for root, _, files in os.walk(target_directory):
        for filename in files:
            full_file_path = os.path.join(root, filename)
            # 处理不同系统的创建时间差异:
            try:
                # Unix/macOS系统用st_birthtime获取真正的创建时间
                create_time = os.stat(full_file_path).st_birthtime
            except AttributeError:
                # Windows系统用getctime获取创建时间
                create_time = os.path.getctime(full_file_path)
            
            # 判断文件是否在过去24小时内创建
            if create_time >= one_day_ago:
                output_file.write(f"{full_file_path}\n")

方法二:使用pathlib(Python3.4+推荐)

pathlib是Python3.4以后推出的更简洁的路径处理模块,代码可读性更高:

from pathlib import Path
import time

# 计算24小时前的时间戳
one_day_ago = time.time() - 24 * 3600

# 用Path对象管理路径
target_dir = Path("/your/target/directory")
output_file = Path("recent_files.txt")

with open(output_file, "w") as f:
    # 遍历所有文件(包括子目录)
    for file_path in target_dir.rglob("*"):
        if file_path.is_file():
            try:
                # Unix/macOS获取创建时间
                create_time = file_path.stat().st_birthtime
            except AttributeError:
                # Windows获取创建时间
                create_time = file_path.stat().st_ctime
            
            if create_time >= one_day_ago:
                f.write(f"{file_path}\n")

几个重要提醒

  • 时间字段差异:如果你的需求是筛选最后修改时间而不是创建时间,可以把代码里的st_birthtime/st_ctime换成st_mtime,这个字段在所有系统上都是指最后修改时间,兼容性更好。
  • 性能优化:如果目录超级大,遍历可能需要一点时间,但比起输出所有几百万条文件,只写入符合条件的文件会快很多,也能大大减少输出文件的大小。
  • 路径替换:记得把代码里的/your/target/directory替换成你实际要处理的目录路径哦!

内容的提问来源于stack exchange,提问作者grahamie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:17:51