Python 的 urllib.request
模块提供了一个 urlopen
检索 URL 的内容和一些元数据并将所有内容存储在主内存中的函数。在内存有限的环境中,这会很快导致 MemoryError
。
还有一个函数叫urlretrieve
这似乎可以满足我的需求。但是,出于某种原因,官方文档提到它 might become deprecated future 。
是否有一种“官方的”、内置的、非遗留的方式来直接执行下载到本地文件系统?我知道这可以通过 requests
等第三方库轻松实现,但我在严格的计算和内存限制下工作,因此更喜欢内置解决方案。
最佳答案
如果您想将自己限制在 Python 的标准库中,请注意 urlopen
返回 HTTPResponse
对象,have methods将响应逐 block 读取到内存中。您可以在 RAM 中缓冲响应 block ,然后将其写入磁盘或沿途的其他位置。
requests
模块使整个过程成为可能 more streamlined .
关于python - 从 URL 检索文件而不先将其加载到 RAM 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59461287/