Python获取文件中的单词数

时间:2017-09-25 05:47:43

标签: python counter

我正在尝试阅读文件中的单词,看起来它没有按预期工作。如果我遗失任何东西,你可以告诉我。

from collections import Counter

wordcount=Counter(f1.read())

for k,v in wordcount.items():
    print (k ,v)

文件内容为:

DELETE
INSERT
DELETE
INSERT
UPDATE
UPDATE

期待

DELETE  2
INSERT 2 ..

...

但它正在计算字母

4 个答案:

答案 0 :(得分:1)

使用.readlines()

.read()不断返回char。所以Counter计算char。 但.readlines()返回单词(事实是一行,但在你的情况下,一行中有一个单词)

答案 1 :(得分:1)

  

使用readlines()代替阅读,

from collections import Counter

f1 = open("test.txt", "r")
wordcount=Counter(f1.readlines())

#print(wordcount)

for k,v in wordcount.items():
    print (k ,v)

要获得更好的结果,请使用split()或splitlines()删除\n

wordcount=Counter(f1.readlines().splitlines())
# or
wordcount=Counter(f1.read().split())

输出:

DELETE 2
INSERT 2
UPDATE 2

答案 2 :(得分:1)

您必须使用readlines()代替read()。此外,您还需要删除\n个字符,因为使用readlines()也会读取它们。

from collections import Counter

with open('chk.txt') as f:
    mylist = f.read().splitlines()   #get rid of newline character

wordcount=Counter(mylist)

for k,v in wordcount.items():
    print (k ,v)

#Output:
('INSERT', 2)
('UPDATE', 2)
('DELETE', 2)

答案 3 :(得分:1)

只需更改Counter的参数即可。 从

wordcount=Counter(f1.read())

wordcount=Counter(f1.readlines().split())