我必须将大数据加载到内存中,结构是列表。 我怎样才能得到另一种方法。 感谢名单
答案 0 :(得分:2)
逐行处理数据,例如
for line in open("file"):
print "do processing of line:",line
或者如果你真的想要将一个整块加载到内存中,你可以尝试内存映射。
import mmap,os,re
bigfile = open( "file2" )
length = os.stat(bigfile.fileno()).st_size
try:
mapping = mmap.mmap(bigfile.fileno(), length, mmap.MAP_PRIVATE, mmap.PROT_READ )
except AttributeError:
mapping = mmap.mmap(bigfile.fileno(), 0, None, mmap.ACCESS_READ )
data = mapping.read(length)
# example, finding a pattern
pat =re.compile("pattern",re.M|re.DOTALL)
print pat.findall(data)
答案 1 :(得分:0)
如果数据太大而无法放入计算机的内存中,则必须逐个阅读。如果它不是太大,你可能仍然想要这样做,但它可能适合你的需要将其全部读入内存。如果您编辑问题以详细说明您的需求以及数据的特征,那么您将获得比此更有帮助的答案。
答案 2 :(得分:0)
此数据是否有任何结构,例如客户记录的大清单,还是像图像,音频或视频数据这样的大块?如果是前者,您可能希望将数据重组为数据库。从Py2.5开始,Python中包含sqlite,并且足以进行许多数据排序和筛选任务。
“大”有多大?你会惊讶于Python可以同时保存在内存中的数据量。向我们提供有关您的大量数据的更多详细信息。