【发布时间】:2019-03-31 18:39:32
【问题描述】:
我想在目录中查找最旧的文件夹。目录中有很多文件夹。如果太旧,我想调用一个单独的函数来处理删除(与这个问题无关)。
目前我有以下:
import pendulum # just to get a timestamp
from pathlib import Path
def is_cleanup_needed():
path = "D:\Test" # Just an example, Linux user please change this
for folder in path.glob('**/*'):
folder_age = folder.stat().st_ctime # Get the time in seconds
age_in_hours = (pendulum.now().timestamp() - folder_age) / (60 * 60)
if age_in_hours > 12: # replace 12 with any hour you want
return True
return False
问题是这非常低效。我必须检查每个文件夹。我有很多文件夹。没有办法只检查最旧的文件夹吗?
我只需要一个最旧的文件夹,所以我想要一种方法来获得它,而无需遍历路径中的每个文件夹。
编辑:只要在 Windows(7 和 10)和 Linux(Ubuntu 18.10)下工作,它就不必与 Pathlib 一起工作
【问题讨论】:
-
你的意思是效率低下?如果你需要知道他们的年龄,真的没有办法避免每个文件的
stat。 -
我只需要最旧的文件夹。为什么我无法获取按年龄排序且仅限于 1 个结果的文件夹?
标签: python python-3.x path