我有一个30MB的.txt文件,与一个数据线(3000万位数字)
不幸的是,每次我试过的方法(mmap.read(),readline(),分配1GB的RAM,用于循环)需要45+分钟仔细阅读本文件.我在互联网上找到的每一种方法似乎都是因为每条线都很小,因此内存消耗量只有文件中的最大线.这是我一直在使用的代码.
start = time.clock()
z = open('Number.txt','r+')
m = mmap.mmap(z.fileno(), 0)
global a
a = int(m.read())
z.close()
end = time.clock()
secs = (end - start)
print("Number read in","%s" % (secs),"seconds.", file=f)
print("Number read in","%s" % (secs),"seconds.")
f.flush()
del end,start,secs,z,m
Run Code Online (Sandbox Code Playgroud)
除了将数字从一行分成不同的行; 我宁愿不这样做,是否有一种更清洁的方法,不需要一个小时的大部分时间?
顺便说一句,我不一定要使用文本文件.
我有:Windows 8.1 64位,16GB RAM,Python 3.5.1