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

时间:2016-07-27 13:51:12

标签: python glob text-parsing

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

我正在尝试:

  1. 搜索两个不同的目录

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

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

  4. 我可以使用glob完成一个文件目录的读取。但是,我无法指定多个目录。还有另一种方法可以实现这个目标吗?

    下面是我的代码,它完成了dir1中最新的15个文件,但没有dir2。

    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)
    

1 个答案:

答案 0 :(得分:4)

我不确定这是你所追求的,但如果你使用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)