Python / PIL Redimensiona todas las imágenes en una carpeta

Tengo el siguiente código que pensé que cambiaría el tamaño de las imágenes en la ruta especificada. Pero cuando lo ejecuto, nada funciona y, sin embargo, Python no produce ningún error, así que no sé qué hacer. Por favor avise. Gracias.

from PIL import Image import os, sys path = ('C:\Users\Maxxie\color\complete') def resize(): for item in os.listdir(path): if os.path.isfile(item): im = Image.open(item) f, e = os.path.splitext(item) imResize = im.resize((200,200), Image.ANTIALIAS) imResize.save(f + ' resized.jpg', 'JPEG', quality=90) resize() 

 #!/usr/bin/python from PIL import Image import os, sys path = "/root/Desktop/python/images/" dirs = os.listdir( path ) def resize(): for item in dirs: if os.path.isfile(path+item): im = Image.open(path+item) f, e = os.path.splitext(path+item) imResize = im.resize((200,200), Image.ANTIALIAS) imResize.save(f + ' resized.jpg', 'JPEG', quality=90) resize() 

Su error es pertenecer a la ruta completa de los archivos. En lugar de item debe ser path + item

En caso de que desee mantener la misma relación de aspecto de la imagen, puede utilizar este script.

 from PIL import Image import os, sys path = "/path/images/" dirs = os.listdir( path ) final_size = 244; def resize_aspect_fit(): for item in dirs: if item == '.DS_Store': continue if os.path.isfile(path+item): im = Image.open(path+item) f, e = os.path.splitext(path+item) size = im.size ratio = float(final_size) / max(size) new_image_size = tuple([int(x*ratio) for x in size]) im = im.resize(new_image_size, Image.ANTIALIAS) new_im = Image.new("RGB", (final_size, final_size)) new_im.paste(im, ((final_size-new_image_size[0])//2, (final_size-new_image_size[1])//2)) new_im.save(f + 'resized.jpg', 'JPEG', quality=90) resize_aspect_fit()