写一个下载失败,自动重新下载的代码
时间: 2023-03-19 18:21:10 浏览: 66
好的,以下是一个下载失败自动重新下载的Python代码示例:
```python
import urllib.request
import time
url = "https://example.com/file.zip"
retry_count = 3
wait_time = 5
while retry_count > 0:
try:
urllib.request.urlretrieve(url, "file.zip")
print("下载成功!")
break
except Exception as e:
print(f"下载失败: {str(e)}")
retry_count -= 1
if retry_count == 0:
print("重试次数已用完,下载失败。")
else:
print(f"{wait_time}秒后进行第{4-retry_count}次重试...")
time.sleep(wait_time)
```
解释一下代码的主要逻辑:
- 第1行,导入`urllib.request`模块,用于下载文件。
- 第3行,设置下载文件的URL。
- 第4行,设置重试次数,本例中为3次。
- 第5行,设置重试间隔时间,本例中为5秒。
- 第7-15行,使用while循环,每次尝试下载文件,如果下载成功则退出循环,如果下载失败则减少重试次数,并等待一段时间后再次重试,直到达到重试次数上限或下载成功为止。
- 第9行,使用`urlretrieve()`函数下载文件,并保存到本地文件“file.zip”。
- 第10行,如果下载成功,输出提示信息“下载成功!”。
- 第13行,如果下载失败,则减少重试次数,如果重试次数已用完,则输出失败信息并退出循环。
- 第16-18行,如果重试次数未用完,则输出提示信息“几秒后进行第几次重试...”,并使用`sleep()`函数等待一段时间后再次重试。