requests: Download file if it doesn't exist
Problem:
You want to download a URL to a file using the requests python library, but you want to skip the download if it doesn’t exist
Solution
Use the following functions:
import requests
import os.path
def download_file(filename, url):
"""
Download an URL to a file
"""
with open(filename, 'wb') as fout:
response = requests.get(url, stream=True)
response.raise_for_status()
# Write response data to file
for block in response.iter_content(4096):
fout.write(block)
def download_if_not_exists(filename, url):
"""
Download a URL to a file if the file
does not exist already.
Returns
-------
True if the file was downloaded,
False if it already existed
"""
if not os.path.exists(filename):
download_file(filename, url)
return True
return False