我想比較兩個txt文件與所有行,但是當我運行代碼時它只響應了幾個結果,循環沒有效果運行,似乎在File1中錯過了很多行,只出現了File1的第一行。比較兩個文件並寫入新文件,但只輸出幾行?
問題:
我的循環有因後非常感謝
def compareLines(filename1,filename2):
File1=open(filename1,'r')
File2=open(filename2,'r')
File3=open("Result.txt",'w')
finalList=[]
for line1 in File1:
for line2 in File2:
set1=set(line1.split(" "))
set2=set(line2.split(" "))
print line1
print line2
similarNumber=len(set1.intersection(set2))/float(len(set1.union(set2)))
File3.write('Simmilar rate:'+str(similarNumber)+' '+str(len(set1.intersection(set2)))+" words in incoindence\n")
finalList.append(similarNumber)
File1.close()
File2.close()
File3.close()
os.remove(filename1)
os.remove(filename2)
return finalList
你文件1的第一行比較文件2的每一行此時file2的是exhauste所以沒有其他事情發生。你想要做什麼?> –
它仍然是低效率的,但是你可以重置'File2'的指針來啓動,所以你可以通過執行'File2.seek(0) '在file2中的line2之前:...' –
如果文件不是很大,你可以加載它們兩次,然後遍歷行列表進行比較。 –