亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: python2.7如何打開大文件 [打印本頁(yè)]

作者: kellyseeme123    時(shí)間: 2016-04-09 23:26
標(biāo)題: python2.7如何打開大文件
有一個(gè)2G的文件,我需要進(jìn)行統(tǒng)計(jì)最長(zhǎng)的那行,下面使用了列表解析和生成器,但是發(fā)現(xiàn)都占用了巨大的內(nèi)存,兩者占用的內(nèi)存基本相同,那么有沒(méi)有其他的方法來(lái)節(jié)省內(nèi)存???
import time
start_time = time.time()
lo = max((len(line) for line in open('kel.log') ))  #使用生成器
print lo
end_time = time.time()
print end_time-start_time

start_time = time.time()
lo = max([len(line) for line in open('kel.log') ]) #使用列表解析
print lo
end_time = time.time()
print end_time-start_time
作者: Hadron74    時(shí)間: 2016-04-11 09:43
本帖最后由 Hadron74 于 2016-04-11 11:34 編輯

測(cè)試了map/reduce,你可以試試。
map 返回list不好,可用imap

  1. from itertools import imap
  2. lo = reduce(max, imap(len,open('kel.log")))
復(fù)制代碼

作者: lolizeppelin    時(shí)間: 2016-04-11 10:48
使用nmap  一截一截的映射

map = mmap.mmap(f.fileno(), length=mmap_len, access = mmap.ACCESS_WRITE, offset=start_len)




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2