Python 如何将csv(txt)文件中的记录与另一个csv(txt)文件中的记录进行比较,并根据它们的比较计算一个数字?
我试图使用Python将csv(txt)文件中的单词与另一个csv(txt)文件中的单词进行比较。然后我试着根据它们的相似性来计算分数。一个文件(Answer.txt)包含测试的答案。另一个(Test.txt)包含测试的定义和答案。问题是我对编码相当陌生,而且两个文件的布局都不同。例如,Answers.txt的布局如下:Python 如何将csv(txt)文件中的记录与另一个csv(txt)文件中的记录进行比较,并根据它们的比较计算一个数字?,python,python-2.7,csv,Python,Python 2.7,Csv,我试图使用Python将csv(txt)文件中的单词与另一个csv(txt)文件中的单词进行比较。然后我试着根据它们的相似性来计算分数。一个文件(Answer.txt)包含测试的答案。另一个(Test.txt)包含测试的定义和答案。问题是我对编码相当陌生,而且两个文件的布局都不同。例如,Answers.txt的布局如下: dog,cat,sheep definition_1,def_2,def_3 dog,cat,sheep Test.txt的布局如下所示: dog,cat,sheep d
dog,cat,sheep
definition_1,def_2,def_3
dog,cat,sheep
Test.txt的布局如下所示:
dog,cat,sheep
definition_1,def_2,def_3
dog,cat,sheep
对于Answer.txt中的每一行,我试图将每个单词与Test.txt中的最后一行进行比较。我还试图根据匹配的单词计算分数。如果一个词匹配,我想得到2分。例如:
如果Answer.txt中的答案是:
dog,cat,sheep
Test.txt中的答案是:
dog,cat,sheep
。。。将计算6分。但是,如果answers.txt中的答案是:
dog cat,shep
。。。然后将获得4分,因为“绵羊”与Test.csv不匹配
然后,我希望将这个“score”添加到另一个名为“score.txt”的文件中记录的末尾
抱歉给你添麻烦了。这是我能解释的最简单的解释。我们将非常感谢您的帮助
增加:
我不知道从哪里开始。但是,我已经编写了将用户输入存储在Answers.txt中的函数:
def ask_question(number, definition):
""" Asks a question for definition number """
print "Definition {}: {}".format(number, definition)
return raw_input("Answer: ")
def sit_a_test():
results = []
with open("Test.txt", "rb") as f:
for row in csv.reader(f):
results.append(list(ask_question(no, def) for no, def in enumerate(row))))
with open("Score.txt", "wb") as f:
writer = csv.writer(f)
writerow.writerows(results)
你可以用numpy试试这样的东西
import numpy as np
# Load the files:
answers = np.loadtxt(open("Answer.txt"), dtype='str', delimiter=",")
test = np.loadtxt(open("Text.txt"), dtype='str', delimiter=",")
# Compare
scores = 2 * np.sum(answers == test, axis=0)
# save
np.savetxt("Score.csv", scores, delimiter=",")
您必须先显示您尝试过的内容。很抱歉这里的布局。注释部分的代码不容易阅读。相反,您的问题需要添加相关细节@LederLatham最好编辑你的问题并添加代码我得走了,所以我不能给你答案。但是,如果在csv文件中读取,则可以将每一行作为行字典读取,然后可以轻松地操作每一个键值对-键是列标题“def_1”,值就是答案。然后你可以很容易地操纵每一个项目,这就是我学会如何操作的地方