2015-11-09 70 views
0

我在Python 2.7上有一個代碼,它應該告訴我單個文本文件中的字母或單詞的頻率。爲什麼此代碼只讀取第一行而不是整個.txt文件?

def frequency_a_in_text(textfile, a): 
    """Counts how many "a" letters are in the text file. 
    """ 

    try: 
     f = open(textfile,'r') 
     lines = f.readlines() 
     f.close() 

    except IOError: 
     return -1 

    tot = 0 
    for line in lines: 
     split = str(line.split()) 
     k = split.count(s) 
     tot = tot + k 
     return tot 

print frequency_a_in_text("RandomTextFile.txt", "a") 

有額外的編碼一點點在那裏 - 「試試看」和「除外」,但是這只是告訴我,如果我不能打開文本文件,然後它會返回一個「 - 1「給我。

每當我運行它,它似乎只是讀第一行,並告訴我有多少「a」字母。

回答

0

在循環的第一次迭代之後,您正在退出函數。

return語句應該在循環之外。

for line in lines: 
    split = str(line.split()) 
    k = split.count(s) 
    tot = tot + k 
return tot 
+0

啊,一個noob錯誤。非常感謝你!我會在兩分鐘內接受你的回答。有一個時間限制阻止了我。編輯:現在接受。再次感謝! – tablue

相關問題