Python搜索多个目录并读取选择文件
我正在寻找一些使用Python对两个不同目录中的一组文件执行操作的帮助 我正试图:Python搜索多个目录并读取选择文件,python,glob,text-parsing,Python,Glob,Text Parsing,我正在寻找一些使用Python对两个不同目录中的一组文件执行操作的帮助 我正试图: 搜索两个不同的目录 查找最后修改的15个文件(比较两个目录中的文件) 逐行读取所有15个最近修改的文件 我可以使用glob完成对一个文件目录的读取。但是,我不能指定多个目录。我还有别的方法可以做到这一点吗 下面是我的代码,它可以抓取dir1中最新的15个文件,而不是dir2 dir1 = glob.iglob("/dir1/data_log.*") dir2 = glob.iglob("/dir2/message
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)
我不确定这是您想要的,但是如果您使用
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)