以下是关于Python3 requests文件下载期间显示文件信息和下载进度代码实例的攻略:
Python3 requests文件下载期间显示文件信息和下载进度代码实例
在使用Python3 requests下载文件时,可以显示文件信息和下载进度,以提高用户体验。以下是Python3 requests文件下载期间显示文件信息和下载进度代码实例的攻略。
显示文件信息
在下载文件时,可以显示文件信息,例如文件名、文件大小等。以下是显示文件信息的示例:
import requests
url = 'http://www.example.com/file.zip'
response = requests.get(url, stream=True)
file_size = int(response.headers.get('Content-Length', 0))
file_name = url.split('/')[-1]
print(f'Downloading {file_name} ({file_size} bytes)...')
在上面的示例中,我们使用requests库发送了一个GET请求到http://www.example.com/file.zip,并使用stream参数设置了流式下载。然后,我们使用headers属性获取响应头,使用get()方法获取Content-Length字段的值,即文件大小。同时,我们使用split()方法获取文件名,并输出文件信息。
显示下载进度
在下载文件时,也可以显示下载进度。以下是显示下载进度的示例:
import requests
import sys
url = 'http://www.example.com/file.zip'
response = requests.get(url, stream=True)
file_size = int(response.headers.get('Content-Length', 0))
file_name = url.split('/')[-1]
downloaded_size = 0
with open(file_name, 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
downloaded_size += len(chunk)
progress = int(downloaded_size / file_size * 100)
sys.stdout.write(f'\r{progress}% downloaded')
sys.stdout.flush()
print('\nDownload complete!')
在上面的示例中,我们使用requests库发送了一个GET请求到http://www.example.com/file.zip,并使用stream参数设置了流式下载。然后,我们使用headers属性获取响应头,使用get()方法获取Content-Length字段的值,即文件大小。同时,我们使用split()方法获取文件名,并输出文件信息。接着,我们使用iter_content()方法迭代响应内容,使用write()方法将内容写入文件,并计算已下载的文件大小。然后,我们使用stdout.write()方法和stdout.flush()方法显示下载进度。最后,我们输出下载完成信息。
以上是Python3 requests文件下载期间显示文件信息和下载进度代码实例的攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3 requests文件下载 期间显示文件信息和下载进度代码实例 - Python技术站