所以我希望能够添加到文件中包含的某个短语的计数器中。但是我不知道从哪里开始。
让我再解释一下:
我有一个名为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)
个顶级短语(因此计数最多的短语)并将其显示在屏幕上的一个框中。
如果用户选择了最大的盒子(在这种情况下是“我的名字就是Dave。”),那么它将显示在顶部的屏幕/框中。如下所示:
一旦用户确定他/她已经选择了他们想要的短语,他们就会按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()
非常感谢任何帮助或评论。
答案 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])
您可以通过搜索列表找到正确的值来查找用户点击的字符串,或者存储显示字符串的标记。