【问题标题】:Python searching multiple directories and reading select filesPython搜索多个目录并读取选择文件
【发布时间】:2016-07-27 13:51:11
【问题描述】:

我正在寻求使用 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)

【问题讨论】:

    标签: python glob text-parsing


    【解决方案1】:

    我不确定这就是你想要的,但如果你使用 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)
    

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 2020-03-28
      • 2018-09-18
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多