从目录访问相同的命名文件

问题描述

我有两个目录,其中包含具有相同名称的文本文件。尽管文件名相同,但是它们包含不同的数据,我想一次从两个目录访问相同的命名文件,并希望进行一些计算。为了进行测试,我编写了以下代码,但是循环一次无法访问相同的命名数据文件。它从两个目录中选择了随机文本文件。有人可以建议我如何通过以下代码访问相同的命名文件吗?

nb:我必须访问近1000个文件

import glob
data1=glob.glob('/home/liu/Music/datafiles1/*.txt')
data2=glob.glob('/home/liu/Music/datafiles2/*.txt')
for files in data:
    print(files)
    
    for file in data2:
        print(file)

解决方法

您知道dir2中的文件名与dir1中的文件名相同,因此您无需列出两个目录。只需将找到的文件名附加到第二个目录即可。

from pathlib import Path

dir1 = Path('/home/liu/Music/datafiles1')
dir2 = Path('/home/liu/Music/datafiles2')

for filepath1 in dir1.glob('*.txt'):
    filepath2 = dir2 / filepath1.name
    print(filepath1,filepath2)
,

您是要写:

import glob
data1=glob.glob('/home/liu/Music/datafiles1/*.txt')
data2=glob.glob('/home/liu/Music/datafiles2/*.txt')
for files in zip(data1,data2):
    f1,f2 = files
    print(f1,f2)

您的嵌套循环方案意味着data2变得筋疲力尽。