我正在寻找一些帮助,使用Python对两个不同目录中的一组文件执行操作。
我正在尝试:
搜索两个不同的目录
找到最近修改的15个文件(比较两个目录中的文件)
逐行阅读所有15个最近修改的文件
我可以使用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)
答案 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)