Python 下载文件到指定文件夹

Python 下载文件到指定文件夹

Python 下载文件到指定文件夹

1. 背景介绍

在日常开发和数据处理中,我们经常需要从互联网上下载文件到本地的指定文件夹中。Python 作为一种高效、易用的编程语言,提供了多种方式来实现文件下载功能。本文将详细介绍如何使用 Python 下载文件到指定文件夹,并给出示例代码和运行结果。

2. 使用 urllib 库下载文件

Python 的标准库 urllib 提供了一种简单的方法来下载文件。我们可以使用其中的 urlretrieve() 函数来完成文件下载操作。下面是一个简单的示例代码:

import urllib.request

url = "https://example.com/image.jpg"
file_path = "/path/to/save/image.jpg"

urllib.request.urlretrieve(url, file_path)
print("文件下载完成")

在上述代码中,我们首先导入了 urllib.request 模块,并定义了要下载的文件的 URL 和要保存的文件的路径。然后,调用 urlretrieve() 函数,传入文件的 URL 和保存路径作为参数,函数会自动将文件下载并保存到指定路径中。

运行上述代码,你将会在 /path/to/save/ 文件夹中找到名为 image.jpg 的文件。

3. 使用 requests 库下载文件

除了 urllib 库外,Python 还提供了另一个流行的第三方库 requests,它更加易用且功能更强大。requests 库提供了更多的选项和功能,使文件下载变得更加灵活。下面是一个使用 requests 库下载文件的示例代码:

import requests

url = "https://example.com/image.jpg"
file_path = "/path/to/save/image.jpg"

response = requests.get(url)
with open(file_path, "wb") as f:
    f.write(response.content)

print("文件下载完成")

在上述代码中,我们首先导入了 requests 模块,并定义了要下载的文件的 URL 和要保存的文件的路径。然后,使用 requests.get() 函数向指定的 URL 发起 GET 请求,并将得到的响应对象保存在 response 变量中。

接下来,我们使用 open() 函数以二进制写模式打开文件,并将响应对象的 content 属性写入到文件中。最后,我们输出一个提示信息,表示文件下载完成。

运行上述代码,你将会在 /path/to/save/ 文件夹中找到名为 image.jpg 的文件。

4. 下载进度显示

当下载大型文件时,我们可能想要显示下载进度以及估计的剩余下载时间。requests 库提供了一个简单的方法来实现这一功能,下面是一个使用 tqdm 库显示下载进度的示例代码:

import requests
from tqdm import tqdm

url = "https://example.com/large_file.zip"
file_path = "/path/to/save/large_file.zip"

response = requests.get(url, stream=True)

total_size = int(response.headers.get("content-length"))
block_size = 1024
progress_bar = tqdm(total=total_size, unit="B", unit_scale=True)

with open(file_path, "wb") as f:
    for data in response.iter_content(block_size):
        progress_bar.update(len(data))
        f.write(data)

progress_bar.close()
print("文件下载完成")

在上述代码中,我们首先导入了 requests 模块和 tqdm 模块,并定义了要下载的大型文件的 URL 和要保存的文件的路径。

然后,我们通过将请求的 stream 参数设置为 True,以便在下载过程中获取数据流。然后,我们获取了响应头中的文件总大小,并创建了一个进度条对象 progress_bar,用于显示下载进度。

接下来,我们使用 iter_content() 方法迭代地获取数据,并在每次获取到数据时更新进度条和写入文件。最后,我们关闭进度条,并输出一个提示信息,表示文件下载完成。

运行上述代码,你将会在 /path/to/save/ 文件夹中找到名为 large_file.zip 的文件,并在终端中实时显示下载进度。

5. 总结

本文详细介绍了使用 Python 下载文件到指定文件夹的方法,并给出了使用 urllib 和 requests 两个库的示例代码和运行结果。无论是使用 urllib 还是 requests,都可以轻松地实现文件下载功能,具体选择哪个库取决于个人的偏好和需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程