我要没有文件就等到有文件
时间: 2024-04-01 12:33:07 浏览: 6
如果你想在请求中等待文件,可以使用一个循环来等待文件下载。在循环中,使用 `requests.get()` 发送 GET 请求,并检查响应头中的 `Content-Disposition` 属性是否存在。如果存在,则说明文件已经下载完成,可以将其保存到文件中并退出循环。如果不存在,则等待一段时间后再次发送请求。
以下是示例代码:
```python
import requests
import time
# 请求文件
url = 'https://example.com/file.jpg'
while True:
response = requests.get(url)
# 如果响应为文件,则将内容写入到文件中并退出循环
if 'Content-Disposition' in response.headers:
# 从响应头中获取文件名
filename = response.headers['Content-Disposition'].split('filename=')[-1]
filename = filename.strip('"')
# 将内容写入到文件中
with open(filename, 'wb') as f:
f.write(response.content)
break
# 如果响应不为文件,则等待一段时间后再次发送请求
time.sleep(1)
```
在上述代码中,使用一个 `while` 循环来等待文件下载。在每次循环中,使用 `requests.get()` 发送 GET 请求,并检查响应头中的 `Content-Disposition` 属性是否存在。如果存在,说明文件已经下载完成,可以将其保存到文件中并退出循环。如果不存在,等待一段时间后再次发送请求,直到文件下载完成。
需要注意的是,以上代码会一直循环等待直到文件下载完成。如果文件不存在或下载失败,代码会陷入无限循环中,需要在代码中添加相应的错误处理逻辑来避免这种情况。