我有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