Python 搜索多个目录并读取 select 个文件

Python searching multiple directories and reading select files

我正在寻找一些帮助,使用 Python 对两个不同目录中的一组文件执行操作。

我正在尝试:

  1. 搜索两个不同的目录

  2. 查找最后修改的 15 个文件(比较两个目录中的文件)

  3. 逐行读取所有 15 个最近修改的文件

我可以使用 glob 完成读取一个文件目录。但是,我不能指定多个目录。还有其他方法可以实现吗?

下面是我的代码,它完成了在 dir1 而不是 dir2 中抓取最新的 15 个文件。

dir1 = glob.iglob("/dir1/data_log.*")
dir2 = glob.iglob("/dir2/message_log.*")

latest=heapq.nlargest(10, dir1, key=os.path.getmtime)
for fn in latest:
    with open(fn) as f:
        for line in f:
            print(line)

我不确定这是你想要的,但如果你使用 glob.glob 而不是 glob.iglob,你可以

dir1 = glob.glob("/dir1/data_log.*")
dir2 = glob.glob("/dir2/message_log.*")

latest=heapq.nlargest(10, dir1+dir2, key=os.path.getmtime)

实际上,如果您不喜欢使用列表 (glob.glob) 而不是生成器 (glob.iglob) 的想法,您可以

from itertools import chain

dir1 = glob.iglob("/dir1/data_log.*")
dir2 = glob.iglob("/dir2/message_log.*")

latest=heapq.nlargest(10, chain(dir1, dir2), key=os.path.getmtime)