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,都可以轻松地实现文件下载功能,具体选择哪个库取决于个人的偏好和需求。