[python] Importing images from a directory (Python) to list or dictionary

I am trying to import all the images inside a directory (the directory location is known).

path = /home/user/mydirectory

I already know a way of finding out the length of the directory.

What I'm not sure about is how I can import the images (using PIL/Pillow) into either a list or a dictionary, so they can be properly manipulated.

This question is related to python python-imaging-library

The answer is


I'd start by using glob:

from PIL import Image
import glob
image_list = []
for filename in glob.glob('yourpath/*.gif'): #assuming gif
    im=Image.open(filename)
    image_list.append(im)

then do what you need to do with your list of images (image_list).


from PIL import Image
import os, os.path

imgs = []
path = "/home/tony/pictures"
valid_images = [".jpg",".gif",".png",".tga"]
for f in os.listdir(path):
    ext = os.path.splitext(f)[1]
    if ext.lower() not in valid_images:
        continue
    imgs.append(Image.open(os.path.join(path,f)))