您的位置  > 互联网

使用urlib和库下载大文件的方法及解决办法!

每周一、周四07:22,我们将按时向您收费

很多日常下载器无法满足需求。 许多程序员想从头开始编写自己的代码来下载。 然而,有时要下载的文件很大,无法加载到内存中。 下载经常失败,浪费半天时间。 非常让人头疼。 遇到这种问题时,只能获取部分数据写入磁盘,保证每​​次内存中只有少量数据。

下载文件有两种方式:

1. 官方urlib库

2.第三方包

这两个库各有优缺点。 以前很多人建议使用urlib,但没有人能给出理由。 现在很多人逐渐喜欢上了图书馆。 主要原因是该库非常简洁、层次较高、上手快、库单一。 有些需要 SSL 身份验证的应用程序存在一些问题。

下面详细讲解如何使用urlib和库下载大文件:

使用库下载大文件

使用get下载大文件/数据时推荐使用模式。

当get函数的参数设置为False时,会立即开始下载文件并将其放入内存中。 如果文件太大,可能会导致内存不足。

当你将get函数的参数设置为True时,它不会立即开始下载。 仅当您使用或遍历内容或访问内容属性时,它才会开始下载。 需要注意的一件事是:在下载文件之前,它还需要保持连接。

:逐段遍历要下载的内容

:逐行遍历要下载的内容。

使用以上两个函数下载大文件可以防止内存使用过多,因为一次只下载一小部分数据。

示例代码:

r = .get(, =True)

f = 打开(“”,“wb”)

# Chunk指定每次写入的大小,每次只写入

对于 r.(=512) 中的块:

如果块:

f.write(块)

有兴趣的朋友可以多了解一下,哈哈。