📅  最后修改于: 2023-12-03 15:41:58.936000             🧑  作者: Mango
在编写 Python 程序时,有时需要从远程服务器下载文件。本文将介绍如何使用 Python 中的 requests
模块请求下载文件。
requests
模块在开始之前,请确保已经安装了 requests
模块。你可以通过运行以下命令来安装它:
pip install requests
如果你使用的是 Python 3,则需要使用以下命令:
pip3 install requests
以下示例代码演示了如何使用 Python 的 requests
模块请求下载文件:
import requests
def download_file(url, file_path):
"""
下载文件
:param url: 文件下载地址
:param file_path: 文件保存路径
"""
with requests.get(url, stream=True) as r:
with open(file_path, 'wb') as f:
for chunk in r.iter_content(chunk_size=8192):
if chunk:
f.write(chunk)
f.flush()
# 示例
download_file('http://example.com/test.zip', 'test.zip')
print('下载完成')
该函数接受两个参数:文件下载地址和文件保存路径。它会下载文件并将其保存到指定的保存路径。
在调用该函数时,你需要提供文件下载地址和文件保存路径。例如:
download_file('http://example.com/test.zip', 'test.zip')
请注意,我们在请求下载文件时使用了 stream=True
参数。这是因为如果你使用默认的请求参数请求下载文件,那么整个文件会被一次性加载到内存中,这可能会使你的程序崩溃。通过设置 stream=True
参数,我们可以使用流式传输方式下载文件,这意味着文件会逐块加载到内存中,从而避免了内存溢出的问题。
此外,在写文件时,我们还使用了缓冲区,以避免一次性将整个文件写入磁盘。这可以通过频繁刷新文件来实现(f.flush()
)。
在本文中,我们学习了如何使用 Python 的 requests
模块请求下载文件。在实际应用中,你可能需要在下载文件时使用超时参数和重试机制等安全机制来保障程序稳定运行。