2

2 つの txt ファイルをすべての行で比較したいのですが、コードを実行すると、いくつかの結果しか返されず、ループが効果的に実行されません。

質問:

ループに問題がありますか?どうもありがとうございました!</p>

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
4

2 に答える 2

0

上記の回答に感謝します。そして、Nisan.H と Ashwini Chaudhary に特別な感謝を込めて、私はあなたの助けによって問題を解決しました。"for line2 in File2" の前に 1 行だけ追加してください~~~

def compareLines(ファイル名1,ファイル名2):

File1=open(filename1,'r')
File2=open(filename2,'r')
File3=open("Result.txt",'w')

finalList=[]

for line1 in File1:
    File2.seek(0)
    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
于 2013-08-30T00:44:20.067 に答える