How to Download and Save Images in Python
Downloading and saving images (or any other type of file) in Python is a straightforward task when using the
requests package to get the data.
In this tutorial, we will learn how to download and save images in Python with examples.
Import the requests Package
The first step is to import the Python requests package. This package will allow us to make HTTP get requests and store the response as an object.
Downloading and Saving an Image
Now we have the
requests package imported, we can make an HTTP GET request to the URL of an image before saving the content of the response as an image file using the
import requests url = 'https://www.skillsugar.com/media/image/parse-json-in-python-1600457348.png' img = requests.get(url) with open('test.png', 'wb') as file: file.write(img.content)
In the above example, we are supplying the URL of an image to the
requests.get() method as an argument and storing the response as a variable. Then we are using the
open() function in
'wb' (binary write) to create a file object before writing the content of the image to the file
test.png using the
Saving The Original File Name
The only reference we have for the original filename of the image is in the URL. One option we have is to use a little bit of RegEx to grab the file name from the URL, store that in a variable and use it as the file name in the
Before using RegEx you will need to import the
import re import requests url = 'https://www.skillsugar.com/media/image/parse-json-in-python-1600457348.png' img = requests.get(url) file_name = re.search('(?:.+\/)([^#]+)', url) if file_name is None: file_name = 'default.png' else: file_name = file_name with open(file_name, 'wb') as file: file.write(img.content)
In the above example, we are using an
if statement to determine if the result from
None (no matches found) and setting a default file name. A more robust option might be to generate a name
note - The URL of the request is available on the
url property of the response object, which may be easier to access in some cases.
You now know how to get images and save them to the local file system in Python. As was mentioned at the beginning of the article, the process above will be identical for any type of file, not just images.