Python 搜索多个目录并读取 select 个文件
Python searching multiple directories and reading select files
我正在寻找一些帮助,使用 Python 对两个不同目录中的一组文件执行操作。
我正在尝试:
搜索两个不同的目录
查找最后修改的 15 个文件(比较两个目录中的文件)
逐行读取所有 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)
我正在寻找一些帮助,使用 Python 对两个不同目录中的一组文件执行操作。
我正在尝试:
搜索两个不同的目录
查找最后修改的 15 个文件(比较两个目录中的文件)
逐行读取所有 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)