2013-08-26 121 views
-2
f = open("unknown.txt", 'r') 
a = sum(line.count('ly') for line in f) 

f = open("unknown.txt", 'r') 
words = 0 

for line in f: 
    words += len(line.split()) 
    print(words) 

所以,這段代碼輸出的數字最多可達78,這是文本文件中的單詞數量,我如何得到'78'和'78'?所以我可以自己使用它,預先感謝!如何選擇for循環的最後一個元素?

+1

你*在變量'words'中有* 78'? – TerryA

+3

嘗試將打印呼叫移出for循環。 –

回答

2
for line in f: 
    words += len(line.split()) 
    print(words) 

這會打印文件中每行之後的單詞總數。如果你只想打印蟒蛇後的單詞量已經計算出有多少,去縮進您的通話print

for line in f: 
    words += len(line.split()) 

print(words) 
2

聽起來像是你要計算在一個文件中的單詞數。

最好的方法是使用內置的len函數。

with open(file_path) as f: 
    words = len(f.read().split()) 

爲了對付更大的文件,你應該這樣做,通過迭代(發電機),這裏是一個函數:

def words_in_file(file_path): 
    with open(file_path) as f: 
     return sum(len(line.split()) for line in f) 

使用功能:

>>> words_in_file('C:/Python27/README.txt') 
7491 
+0

請注意,這可能會遇到真正大文件的問題,因爲它必須全部讀入內存。在這種情況下(不可多得的情況下)逐行加起來可能會更好。 –

+0

@Lattyware太真實 - 編輯以反映。 –

相關問題