2014-11-04 30 views
0

一直試圖做一段時間,但由於某種原因,我不能讓我的頭繞着這個簡單的代碼。不必擔心標點符號,它只是純文本。 目前我只有:Python-寫一個函數,打開一個.txt文件,並返回其中的單詞總數

def wc(filename): 

    f = open(filename, 'r') # Read 
    words = f.readlines() 
    f.close() 
    print int(filename.split()) 
    p = 1 
    for word in words: 
     p += words 
    return p 

一直在尋找了一段時間的答案,但只能找到例子,他們算特定的詞。

+0

要拆分的文件名,結果(名單)轉換爲'int'。 – 2014-11-04 15:09:16

回答

1
f = open(filename) # Read 
words = f.read() 
f.close() 
words = words.split() 
print len(words) 
0

這個人給你行

words = f.readlines() 

您需要爲內部通過.split()方法拆分字變量。

word_count += len(word.split()) 
+0

'words'將是一個字符串列表。 – 2014-11-04 15:18:44

+0

是的,你是對的。我只是試圖檢查和糾正錯誤的代碼部分。它應該在裏面for和word.split() – 2014-11-04 15:27:55

0
with open(filename, 'r+') as f: 
    words = f.read() 
words = words.split(' ') 
words_nbr = len(words) 
print(words_nbr) 
1

split可以採取參數sep指定哪些字符分割上(隔板)。

字符串模塊有一些常量,包括punctuationwhitespace

把它們放在一起你

import string 

filename = 'words.txt' 

with open(filename) as f: 
    words = f.read().split(string.whitespace + string.punctuation) 

print len(words) 
相關問題