python - 如何使用 os.walk 根据修改日期过滤文件夹?
问题描述
我正在遍历一个巨大的目录,但由于它包含超过 500k 的文件,我想根据函数的最后修改日期过滤函数输入的文件夹。
我只想输入过去 7 天内修改过的文件夹。
到目前为止,这是我的代码:
def checkFolderFileTimestamps(rootFolder):
for root, dirs, files in os.walk(rootFolder):
print(datetime.fromtimestamp(os.path.getmtime(os.path.join(root))).strftime("%Y:%m:%d"))
for file in files:
if file.endswith(".png") and datetime.fromtimestamp(os.path.getmtime(os.path.join(root, file))).strftime("%Y:%m:%d") > datetime.now().strftime("2021:5:1"):
print(os.path.join(root, file))
print(datetime.fromtimestamp(os.path.getmtime(os.path.join(root, file))).strftime("%Y:%m:%d") == datetime.now().strftime("%Y:%m:%d"))
imageArray.append(os.path.join(root, file))
imageName.append(file)
print(imageArray)
解决方案
我假设您正在寻找在过去 7 天内修改过的根文件夹中的文件夹列表。
import datetime
import os
# Date a week ago
week_ago = datetime.date.today() - datetime.timedelta(days=7)
您可以通过简单的比较来检查日期是否少于一周前。
today = datetime.date.today()
print(today > week_ago)
# Output is True
以下代码生成rootFolder
过去 7 天内修改的文件夹列表。
folders = [os.path.join(rootFolder,f.name) for f in os.scandir(rootFolder)
if f.is_dir() and
datetime.date.fromtimestamp(os.path.getmtime(os.path.join(rootFolder,f))) > week_ago]
推荐阅读
- sql - 如何在 SQL 中捕获每天创建和删除的表的详细信息?
- matlab - 使用 matlab 创建和绘制分布图
- visual-studio - Visual Studio 中的报表生成器 Nuget
- c++ - C++中TCP套接字的recv函数
- android - Firebase 数据库突然停止在少数安卓设备上运行
- woocommerce - 通过 Api 在 WooCommerce 中插入产品插件
- npm-install - 无法从“init.js”中找到模块“detox/runners/jest/adapter” - 排毒
- python-3.x - tensorflow不使用gpu - 素数程序
- oracle11g - oracle内部连接过程
- php - 屏蔽一堆图片网址