Stream closed error
Stream closed error
$ python -c "import requests; r=requests.get('https://example.com', stream=True); r.close(); next(r.iter_content(10))"
Traceback (most recent call last):
...
ValueError: I/O operation on closed file.
Why this happens
The response stream was closed before reading content.
Fix
- Read content before closing or avoid manual close by using context manager.
Wrong code
import requests
r = requests.get("https://example.com", stream=True)
r.close()
for chunk in r.iter_content(1024):
pass
Fixed code
import requests
with requests.get("https://example.com", stream=True) as r:
for chunk in r.iter_content(1024):
# process chunk
pass