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