Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将csv(txt)文件中的记录与另一个csv(txt)文件中的记录进行比较,并根据它们的比较计算一个数字?_Python_Python 2.7_Csv - Fatal编程技术网

Python 如何将csv(txt)文件中的记录与另一个csv(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

我试图使用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
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”,值就是答案。然后你可以很容易地操纵每一个项目,这就是我学会如何操作的地方