2015-10-14 68 views
0

当我Pycharm 4运行此我得到这个代码中的错误:内存错误的Python在Windows上处理大型数据库

PDBSumWWW = urllib.urlopen("https://www.ebi.ac.uk/thornton-srv/databases/pdbsum/data/seqdata.dat") 
PDBSum = PDBSumWWW.read().splitlines() 
PDBSumWWW.close() 

这是错误消息:

回溯(最近调用最后一个): 文件“C:/Users/LuisAlberto/PycharmProjects/MSc/SeqPDBSumIRIndex.py”,第98行, main() 文件“C:/Users/LuisAlberto/PycharmProjects/MSc/SeqPDBSumIRIndex.py”,第40行,主 PDBSum = PDBSumWWW.read()。splitline s() MemoryError

但是,当在Macbook Air上运行时,它不会发生。

我该如何克服这一点?

+1

在链接资源中的数据的大小为56056571个字节(〜56 MB)中,'MemoryError'最有可能表明,在运行Windows的计算机没有足够的内存来处理现有的数据(而在MacBook空气)。 –

+0

当然。我如何解决这个问题是因为windows笔记本电脑的规格比Mac书更好的规格Air –

+0

“更好的规格”一般并不意味着你的程序获得更多的内存。挖掘您的系统规格,了解默认情况下进程获得多少内存。如果可以,重新配置它。在MacBook上检查相同,只是为了确保。 – Prune

回答

4

这是我能想到解决您的问题的最简单的解决方案。
在此解决方案中,for循环将遍历数据库中的每一行。每条线将被分配line变量。

PDBSumWWW = urllib.urlopen("https://www.ebi.ac.uk/thornton-srv/databases/pdbsum/data/seqdata.dat") 
for line in PDBSumWWW: 
    # Do necessary calculations. 
PDBSumWWW.close() 
+1

谢谢你的帮助。它有助于加速这个过程! –