怎么等待文件下载完成的python代码
时间: 2024-10-20 17:10:07 浏览: 24
Python实现多线程下载文件的代码实例
在Python中,当需要等待文件下载完成后继续执行其他操作时,通常会通过定时检查文件大小或者监听文件的创建时间来判断下载是否已完成。下面是一个使用`requests`库下载文件并检测文件存在的示例:
```python
import requests
import time
from pathlib import Path
def download_file(url, save_path, chunk_size=1024):
response = requests.get(url, stream=True)
total_size = int(response.headers['content-length']) # 获取总文件大小
downloaded_size = 0
progress_bar = tqdm(total=total_size, unit='B', unit_scale=True) # 显示进度条
with open(save_path, 'wb') as f:
for data in response.iter_content(chunk_size=chunk_size):
f.write(data)
downloaded_size += len(data)
progress_bar.update(len(data))
progress_bar.close()
# 等待文件完全下载(这里假设文件一旦存在就代表下载完成了,如果需要更精确的判断,可能需要检查文件大小是否相等)
while not Path(save_path).exists():
print(f"Waiting for {save_path} to be created...")
time.sleep(5) # 每隔5秒检查一次
download_file('http://example.com/file.zip', '/path/to/save/file.zip')
```
使用`tqdm`库可以显示进度条,方便观察下载进度。这里我们简单地通过检查文件是否存在来判断下载是否完成,如果需要确认文件大小是否已达到预期,可以在循环结束后再次检查。
阅读全文