我有一個作業問題。我應該編寫一個名爲「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})
我如何拿到專櫃去跳過線(在輸入文件從下一行)打印的獨特單詞頻率下一行?
不要在函數內部導入。這幾乎不是一個好主意。 –
兩個注意事項:1)你的任務是編寫一個函數來計算單詞*每行*:你的函數應該只在一行上工作,並打印出頻率。 2)你目前沒有循環遍歷文件的所有行,但你只讀了一行。 – sal
每次你打開(outFile,'w')'它會創建一個新文件。你想'打開(outFile,'wa')'追加到任何現有的文件。只需打開一次文件並將每個連續的輸出行寫入即可。 – martineau