txt文件中的Python计数器
我想初始化一个collections.Counter对象,该对象来自词频计数的文本文件。也就是说,我有一个文件“counts.txt”: 我想要一个计数器对象txt文件中的Python计数器,python,text-files,counter,Python,Text Files,Counter,我想初始化一个collections.Counter对象,该对象来自词频计数的文本文件。也就是说,我有一个文件“counts.txt”: 我想要一个计数器对象wordCounts,这样我就可以调用 >>> print wordCounts.most_common(3) [('the', 225300), ('of', 157486), ('and', 134478)] 什么是最有效的python方法这里有两个版本。第一个将counts.txt作为常规文本文件。第二种方法将其视
wordCounts
,这样我就可以调用
>>> print wordCounts.most_common(3)
[('the', 225300), ('of', 157486), ('and', 134478)]
什么是最有效的python方法这里有两个版本。第一个将
counts.txt
作为常规文本文件。第二种方法将其视为csv文件(这就是它的外观)
import collections.Counter
words = dict()
fp = open('counts.txt')
for line in fp:
items = line.split()
words[items[1].strip()] = int(items[2].strip())
wordCounts = collections.Counter(words)
如果您的数据文件被一些一致的字符或字符串分隔,您可以使用csv.DictReader
对象来解析该文件
下面显示的是,如果您的文件是选项卡
分隔的,如何执行
数据文件(由我编辑,以制表符分隔)
代码
from csv import DictReader
from collections import Counter
with open('counts.txt') as f:
reader = DictReader(f, delimiter='\t')
wordCounts = Counter({row['wordform']: int(row['abs']) for row in reader})
print wordCounts.most_common(3)
这里有两个版本。第一个将
counts.txt
作为常规文本文件。第二种方法将其视为csv文件(这就是它的外观)
如果您的数据文件被一些一致的字符或字符串分隔,您可以使用csv.DictReader
对象来解析该文件
下面显示的是,如果您的文件是选项卡
分隔的,如何执行
数据文件(由我编辑,以制表符分隔)
代码
from csv import DictReader
from collections import Counter
with open('counts.txt') as f:
reader = DictReader(f, delimiter='\t')
wordCounts = Counter({row['wordform']: int(row['abs']) for row in reader})
print wordCounts.most_common(3)
文件中的字段是用制表符、逗号或其他东西分隔的吗?文件中的字段是用制表符、逗号或其他东西分隔的吗?好的解决方案,但我会调用
打印字数。最常见的(3)
关闭文件后:)在这种情况下,您只需取消最后一行的缩进。好的解决方案,但是我会调用print wordCounts。最常见的(3)
在关闭文件后:)在这种情况下,您需要做的就是取消最后一行的缩进;干净简单。但是我接受了@PaulRooney的答案,因为他使用with open()
@alavin89更好地处理文件-是的,他的答案更像是PythonicI的答案;干净简单。但是我接受了@PaulRooney的答案,因为他使用with open()
@alavin89更好地处理文件-是的,他的答案更像python
rank wordform abs r mod
1 the 225300 29 223066.9
2 and 157486 29 156214.4
3 to 134478 29 134044.8
999 fallen 345 29 326.6
1000 supper 368 27 325.8
from csv import DictReader
from collections import Counter
with open('counts.txt') as f:
reader = DictReader(f, delimiter='\t')
wordCounts = Counter({row['wordform']: int(row['abs']) for row in reader})
print wordCounts.most_common(3)