擅长:python、mysql、java
<p>我会直接读到EOF(这意味着检查是否接收到空字符串),然后不再需要使用range()和getsize。<br/>
或者,使用<code>xrange</code>(而不是<code>range</code>)应该可以改进一些东西,特别是对于内存使用来说。<br/>
此外,正如falmari所建议的那样,同时读取更多的数据将大大提高性能。</p>
<p>也就是说,我不会期待奇迹的出现,因为我不确定一个列表是存储所有这些数据的最有效方法。<br/>
使用NumPy的数组及其工具来<a href="http://www.scipy.org/Cookbook/InputOutput" rel="nofollow">read/write binary files</a>怎么样?在这个<a href="http://www.scipy.org/Cookbook/InputOutput" rel="nofollow">link</a>中,有一节是关于使用numpyio.fread读取原始二进制文件的。我相信这正是你所需要的。</p>
<p>注:就我个人而言,我从来没有使用过NumPy;然而,它的主要目的恰恰是处理大数据集——这就是你在问的问题。</p>