Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 处理大型数据库时出现内存错误_Python_Memory_Pycharm - Fatal编程技术网

Python 处理大型数据库时出现内存错误

Python 处理大型数据库时出现内存错误,python,memory,pycharm,Python,Memory,Pycharm,当我在windows上的Pycharm 4上运行此操作时,我在以下代码中得到一个错误: PDBSumWWW = urllib.urlopen("https://www.ebi.ac.uk/thornton-srv/databases/pdbsum/data/seqdata.dat") PDBSum = PDBSumWWW.read().splitlines() PDBSumWWW.close() 这是错误消息: 回溯(最近一次呼叫最后一次): 文件“C:/Users/LuisAlberto/P

当我在windows上的Pycharm 4上运行此操作时,我在以下代码中得到一个错误:

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().splitlines() 记忆者

然而,在MacBookAir上运行时,这种情况不会发生


我如何克服这个问题?

这是我能想到的解决您问题的最简单的解决方案。
在此解决方案中,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()

这是我能想到的解决你问题的最简单的方法。
在此解决方案中,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()

链接资源中的数据大小为56056571字节(~56 MB),
MemoryError
很可能表示运行Windows的计算机没有足够的内存来处理可用数据(而Macbook Air有)。请确定。我是如何克服这个问题的,因为windows笔记本电脑的规格比Mac book Air的要好。一般来说,“更好的规格”并不意味着你的程序可以获得更多的内存。仔细查看您的系统规格,看看一个进程默认获得了多少RAM。如果可以,请重新配置它。请在MacBook上检查相同的设置,以确保。链接资源中的数据大小为56056571字节(~56 MB),
MemoryError
很可能表示运行Windows的计算机没有足够的内存来处理可用数据(而MacBook Air则有)。确定。我是如何克服这个问题的,因为windows笔记本电脑的规格比Mac book Air的要好。一般来说,“更好的规格”并不意味着你的程序可以获得更多的内存。仔细查看您的系统规格,看看一个进程默认获得了多少RAM。如果可以,请重新配置它。请在MacBook上查看相同的内容,以确定是否正确。谢谢您的帮助。这对加快进程有很大帮助!谢谢你的帮助。这对加快进程有很大帮助!