python - 从 URL 检索文件而不先将其加载到 RAM 中

标签 python python-3.x urllib

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/

相关文章:

Python re.findall 仅返回第一个字符

python-3.x - Sklearn PCA 分解解释_方差_比率_

python - 打开 url 并检索更改的 url

PYTHON - BEAUTIFULSOUP 如何将空 TD(表数据)刮取为空值而不是跳过它

python - 如何在python中直接将文件添加到zip?

python - 绘图模型不显示模型层,仅显示模型名称

python - Pandas:拆分字符串然后创建一个新列?

Python MySQL 将 DateTime 和 Decimal 值转换为可读值

python - 如何使用 urllib 发送 cookie

python - Word2Vec:使用 Gensim 和 Google-News 数据集 - 执行时间非常慢