首页 > 解决方案 > 如何加快我的代码以比较 Python 中的两个文件 - 对于 1 GB 大小的文件 (file.txt)

问题描述

如何加快我的代码以比较 Python 中的两个文件 - 对于 1 TB 大小的文件 (file.txt) 我的大小文件 f1.txt = 700MB 和其他 100,000,000 行 f2.txt = 370MB 其他 600K 行

f1 = open("./2/f1.txt", "r",encoding="utf8,") 
f2 = open("./2/f2.txt", "r",encoding="utf8") 
cc = open("./2/out.txt","w",encoding="utf8")
f1_raw = f1.readlines()
f2_raw = f2.readlines()
a = f1_raw 
b = f2_raw

for x in a:
    if not x in b:
        cc.write(x+"\n")
for x in b:
    if not x in a:
        cc.write(x)
f1.close()
f2.close()
cc.close()

标签: pythoncompare

解决方案


我认为您可以创建一个字典,将 f1 中的每一行作为键,将 f2 中的每一行作为值。然后在dict上做循环。

f1 = open("file.txt")
f2 = open("dummy.txt")
f1_raw = f1.readlines()
f2_raw = f2.readlines()
a = f1_raw 
b = f2_raw

d = {}

for i,j in zip(a,b):
    d |= {i:j}

for c in a:
    if c in d.values():
        do something..

for k in b:
    if k in d.keys():
        do something..

列表具有线性时间复杂度 O(N),而 Python 中的字典具有恒定时间复杂度 O(1),这意味着在字典中查找速度更快。


推荐阅读