2个未知大小的文本文件之间的区别

为了找到解决方案,我损失了几天,但没有成功!我有两个行很多的文本文件。一个文件可以包含成千上万的数字行,例如:79357795 79357796 68525650。


第二个文件也包含数字,但不是太多,可能是一百行(每行还是一个数字)。我尝试了一些“算法”,但没有成功。现在,我的问题是:我可以检查第一个文件的第一行和第二个文件的所有行,之后再检查第一文件的第二行和第二个文件的所有行,依此类推直到文件末尾吗?因此,我想将这两个文件之间的差异保存在第三个文件中。谢谢大家的答复,对于我最糟糕的英语,我们深表歉意。:)


PS:哦,是的,我需要在Python中执行此操作。


更多详细信息:first_file.txt包含:


79790104

79873070

69274656

69180377

60492209

78177852

79023241

69736256

68699620

79577311    

78509545

69656007

68188871

60643247

78898817

79924105

79684143    

79036022

69445507

60605544

79348181

69748018

69486323

69102802

68651099

second_file.txt包含:


78509545    

69656007    

68188871    

60643247

78898817    

79924105    

79684143    

79036022    

69445507

60605544    

79348181    

69748018    

69486323    

69102802

68651099

79357794

78953958

69350610

78383111

68629321

78886856

third_file.txt需要包含在first_file.txt中不存在但在第二个文件中存在的数字,在这种情况下:


79357794

78953958

69350610

78383111

68629321

78886856


Qyouu
浏览 135回答 3
3回答

拉风的咖菲猫

就像是:from itertools import ifilterfalsewith open('first') as fst, open('second') as snd, open('not_second', 'w') as fout:    snd_nums = set(int(line) for line in snd)    fst_not_in_snd = ifilterfalse(snd_nums.__contains__, (int(line) for line in fst))    fout.writelines(num + '\n' for num in fst_not_in_snd)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python