我有一个家庭作业问题。我应该编写一个名为“WordsByLine”的函数,该函数用于计算文件中每行唯一单词的频率,并将唯一单词的频率打印到输出文件中的相应行。教授告诉我们我的输出应该是什么样子。例如,如果输入文本文件显示:
one fish two fish
red fish blue fish
(一条鱼两条鱼是第一条线。红色的鱼蓝色的鱼是第二行。)
输出必须如下所示:
two:1 one:1 fish:2
red:1 blue:1 fish:2
输出中的第一行是第一行的唯一单词的频率,然后第二行的频率相同。在
这是我的代码:
def wordsByLine(inFile, outFile):
from collections import Counter
outFile = open(outFile, 'w')
with open(inFile, 'r') as f:
freqs = Counter(f.readline().split())
outFile.write(str(freqs))
outFile.close()
print(wordsByLine('input.txt','output.txt'))
但这是我在文本文件中的输出。它只打印出第一行
Counter({'two':1, 'one':1, 'fish':2})
如何让计数器跳过一行并为下一行(从输入文件的下一行)打印唯一单词的频率?在
正如评论中指出的,您只阅读过一行
f.readline
。另外,您可能希望格式化文本,而不是打印出Counter
对象的字符串表示:结果:
^{pr2}$相关问题 更多 >
编程相关推荐