我一直在研究一个非常简单的程序,其要点如下所示:
post = open(INPUTFILE1, "rb")
for line in post:
cut = line.split(',')
pre = open(INPUTFILE2, "rb")
for otherline in pre:
cuttwo = otherline.split(',')
if cut[1] == cuttwo[1] and cut[3] == cuttwo[3] and cut[9] == cuttwo[9]:
OUTPUTFILE.write(otherline)
break
post.close()
pre.close()
OUTPUTFILE.close()
实际上,它的作用是将两个 csv 文件作为输入(一个“pre”和一个“post”)。它查看“post”数据中的第一行,并尝试在“pre”数据中找到与第 2、4 和 10 列匹配的行。如果匹配,它将“pre”数据写入新文件。
它工作得很好,但它需要永远。虽然我的“post”数据可能只有几百(最多可能一千)行,但我的“pre”可能有多达 1500 万行。因此,可能需要大约 10 个小时才能完成。
我对 Python 还很陌生,所以我还没有学到很多关于优化技术的知识。有人对我可以尝试什么有任何指示吗?显然,我知道当我搜索整个“pre”数据以进行匹配时,就会发生僵局。有没有办法加快这个速度?