我正在尝试计算两个大型csv文件(约4GB)之间的差异,以获取新添加的行并将其写入输出csv文件。对于相对较小的文件(~50MB),我可以使用以下代码获得此功能。
input_file1 = "data.csv"
input_file2 = "data_1.csv"
output_path = "out.csv"
with open(input_file1, 'r') as t1, open(input_file2, 'r') as t2:
fileone = t1.readlines()
filetwo = t2.readlines()
with open(output_path, 'w') as outFile:
for line in filetwo:
if line not in fileone:
outFile.write(line)
然而,对于较大的文件,以上代码要么速度过慢(运行约半个小时),要么因内存空间不足而崩溃。
有没有更快的方法来获取大型csv文件的差异?