我有2个文件:文件A包含200 000行;文件B包含4 000 000行。所以,我想比较这些文件并打印其不在文件B.Python:最好的方法来比较2文本文件?
例如线路: 文件:
1
2
3
文件B:
1
4
5
6
7
输出:
2
3
而下面是我的代码:
for line in open ('C:/A.txt'):
if line not in open ('C:/B.txt'):
print (line)
此代码有效,但需要很长时间才能完成。那么,如何加快代码过程?
任何帮助将不胜感激! :)
你有没有进去看了['filecmp'模块(HTTPS ://docs.python.org/3/library/filecmp.html)? – karthikr
这是[渐近复杂度](https://en.wikipedia.org/wiki/Asymptotic_computational_complexity)的典型例子,通常称为[Big O notation](https://en.wikipedia.org/wiki/Big_O_notation )。'not in'语句必须每次读取整个文件,即O(n)(线性时间 - 工作量与输入长度成正比)。既然你在第一个文件中为每一行调用一次,那么你要做的线性工作量为线性(O(n))次。因此,您的算法需要O(n)x O(n)或O(n^2)时间运行 - 也称为二次时间。 – dimo414