使用glob()查找tim中某个点之后的目录

2024-04-20 02:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个目录系统设置如下:

root
├── logs
│   ├── 20151109
│   │   ├── default.log
│   ├── 20151110
│   │   ├── default.log
│   ├── 20151111
│   │   ├── default.log

这些日志每天生成一次,可以追溯到大约七个月前,但我只需要过去一周的日志文件。因此,如果今天是2015-11-12(2015年11月12日),我想要文件夹中的日志文件从“20151105”(11月5日)到“20151111”(11月11日)。你知道吗

我如何告诉glob.glob()只返回那些特定文件的结果?我试着运行glob.glob("logs/*/default.log")并获取生成的列表中的最后7个条目,但是glob()似乎没有以任何特定的顺序返回文件夹结果。你知道吗


Tags: 文件目录文件夹logdefault列表顺序系统
2条回答

这是按日期对所需文件夹中的文件进行排序的方法:

import glob
import os

files = glob.glob("*cycle*.log")
files.sort(key=os.path.getmtime)
print("\n".join(files))

或者您可以尝试:

import glob
import os
import time

searchedfile = glob.glob("*.log")
files = sorted( searchedfile, key = lambda file: os.path.getctime(file))

for file in files:
 print("{} - {}".format(file, time.ctime(os.path.getctime(file))) )

还要注意,这使用创建时间,如果要使用修改时间,则使用的函数必须是getmtime。你知道吗

为什么不对结果进行排序:

sorted(glob.glob("logs/*/default.log"))[-7:]

相关问题 更多 >