我的for循环只会提供最后的结果,而不是所有结果

meh*_*lue 0 python for-loop fuzzy-comparison

我试图使用分数比较两个文本之间的相似性.这是我的代码:

risk_list1_txt = []
scoreList = []
similarityDict = {}
theScore = 0
for text1 in risk_list1:
    similarityDict['FileName'] = text1
    theText1 = open(path1 + "\\" + text1).read().lower()
    for text2 in range(len(risk_list2)):
        theText2 = open(path2 + "\\" + risk_list2[text2]).read().lower()
        theScore = fuzz.token_set_ratio(theText1,theText2)
        similarityDict[risk_list2[text2]] = theScore
    outFile= open(fileDestDir,'w')
    outFile.write(str(theScore))
outFile.close()
Run Code Online (Sandbox Code Playgroud)

问题是我的outfile只给了我最后一次比较的分数,虽然我在risk_list1和risk_list2中有3个不同的文本文件.我无法让这个循环正常运行.

sha*_*aan 6

您正在以写入模式打开文件而不是追加模式.更换

outFile= open(fileDestDir,'w')
Run Code Online (Sandbox Code Playgroud)

outFile= open(fileDestDir,'a')
Run Code Online (Sandbox Code Playgroud)

写入模式会截断文件的内容.附加模式附加到现有内容.有关文档模式的更多信息,请参见此处