如何添加所选短语的计数?

时间:2014-01-26 19:18:16

标签: python file pygame python-3.3 editing

所以我希望能够添加到文件中包含的某个短语的计数器中。但是我不知道从哪里开始。

让我再解释一下:

我有一个名为setPhrases.txt的.txt文件。该文件包含以下内容:

What is your name?, 9
What time is dinner?, 8
Thank-You., 9
I have done all my homework., 7
Can you bring me a drink Please?, 6
Hi my name is Dave., 10

我目前能够获取(n)个顶级短语(因此计数最多的短语)并将其显示在屏幕上的一个框中。 enter image description here

如果用户选择了最大的盒子(在这种情况下是“我的名字就是Dave。”),那么它将显示在顶部的屏幕/框中。如下所示: enter image description here

一旦用户确定他/她已经选择了他们想要的短语,他们就会按OK,然后应该识别屏幕上的短语/短语,并且应该将+1添加到文件中。

  • 因此,在这种情况下,Hi my name is Dave.标记会增加1并更改为11并将保存到文件中:Hi my name is Dave., 11,而不对其他任何内容进行任何更改该文件中的短语。

Here is the full code.(有时更容易获得完整的代码。)

这是检查是否已按下OK然后继续的部分:

elif textSelected == "OK":
    self.deletePanes()
    self.createPhrases()

这是我打开文件的方式:

def get_n_nouns(self, n):

    #Returns the n most common nouns

    with open("setPhrases.txt") as in_file:
        reader = csv.reader(in_file)
        data = [[row[0], int(row[1])] for row in list(reader)]

    return sorted(data, key=lambda x: -x[1])[:n]

这是我写入Pane / Box的地方:

def createPhrases(self):

    print("createPhrases")
    self.deletePanes()

    self.show_keyboard = False
    self.show_words = False
    self.show_phrases = True
    self.show_terminal = True

    words = self.get_n_nouns(2)
    for word, count in words:
        self.addPane("{}: {}".format(word, count), WORDS)
    self.addPane("Boxes", PHRASE)
    self.addPane("Keyboard", PHRASE)
    self.addPane("OK", PHRASE)
    self.drawPanes()

非常感谢任何帮助或评论。

1 个答案:

答案 0 :(得分:2)

您应该将csv reader读取的数据存储在列表中,这样在修改后,您可以创建一个编写器并写入该文件。

with open("setPhrases.txt") as out_file:
    writer = csv.writer(out_file)
    for row in file_rows:
        spamwriter.writerow(row[0],row[1])

您可以通过搜索列表找到正确的值来查找用户点击的字符串,或者存储显示字符串的标记。