【发布时间】:2014-02-11 12:08:25
【问题描述】:
这是我的代码,用于计算频率
import collections
import codecs
import io
from collections import Counter
with io.open('Combine.txt', 'r', encoding='utf8') as infh:
words =infh.read().split()
with open('Counts2.txt', 'wb') as f:
for word, count in Counter(words).most_common(100000000):
f.write(u'{} {}\n'.format(word, count).encode('utf-8'))
当我尝试读取一个大文件(4 GB)时出现错误
Traceback (most recent call last):
File "counter.py", line 7, in <module>
words =infh.read().split()
File "/usr/lib/python2.7/codecs.py", line 296, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
MemoryError
我使用的是 Ubuntu 12.4,8 GB RAM Intel Core i7 如何解决此错误? /
usr/lib/python2.7/codecs.py", line 296, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
MemoryError
【问题讨论】:
-
见this
-
不要一次将整个文件读入内存?
-
这应该会有所帮助:stackoverflow.com/questions/519633/…
-
要逐字读取文件,请使用空格作为分隔符和How to read records terminated by custom separator from file in python?的答案
标签: python file python-2.7