【发布时间】:2016-05-04 09:26:54
【问题描述】:
我有一个简单的程序,它从网站读取数据,然后使用 urllib 将其写入文件。但是该文件的大小是 几百兆字节,并且 Python 不断引发 Out of Memory Error
import urllib
content = urllib.urlopen ( LINK )
f = file ("Something.mp4", "wb")
f.write ( content.read () )
然后当我下载并写入文件时,它会引发内存错误。 我正在考虑将 content 分解成块并写入每个单独的块,但我只知道如何逐行读取文件而不是逐块读取。
更新:更好的是,有没有一种方法可以让我从服务器读取数据块,写入数据,然后在 X 处开始下载?因为我认为内存错误来自urllib文件实例的返回数据!
问题:如何下载数据,并将其高效地写入文件而不会出现内存不足? ...和/或实现此目的的 Pythonic 方式是什么?
奖励:如何找到我的系统可以处理的实际内存限制/参数? 示例:由于我有 4 Gigs 的 RAM,这是否意味着我可以使用 4 Gigs 的内存? ...超过一定的内存使用量后,Python 会在什么/什么时候切断我的信息?
规格: Windows 8、64 位、4GB RAM、1.3 GHZ CPU。 Python 2.7
【问题讨论】:
标签: python-2.7 youtube web-scraping out-of-memory urllib