繁体   English   中英

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

[英]Retrieving a file from a URL without loading it into RAM first

Python 的urllib.request模块提供了一个urlopen函数,它检索 URL 的内容和一些元数据,并将所有内容存储在主内存中。 在内存有限的环境中,这会很快导致MemoryError s。

还有另一个名为urlretrieve函数,它似乎urlretrieve我的要求。 但是,出于某种原因,官方文档提到它将来可能会被弃用

是否有“官方”、内置和非传统方式直接下载到本地文件系统? 我知道这可以通过第三方库(例如requests轻松实现,但我在严格的计算和内存限制下工作,因此更喜欢内置解决方案。

如果您想将自己限制在 Python 的标准库中,请注意urlopen返回HTTPResponse对象,这些对象具有将响应逐块读取到内存中的方法 您可以在 RAM 中缓冲响应块并将其写入磁盘或沿途的其他地方。

requests模块使整个事情更加精简

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM