我正在尝试阅读文件中的单词,看起来它没有按预期工作。如果我遗失任何东西,你可以告诉我。
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 ..
...
但它正在计算字母
答案 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())