regular expression

James oscartheduck at gmail.com
Fri Jun 22 15:50:12 EDT 2007


Hi folks,

I have a little script that sits in a directory of images and, when ran,
creates thumbnails of the images. It works fine if I call the function
inside the program with something like "thumbnailer("jpg), but I want to use
a regular expression instead of a plain string so that I can match jpeg,
jpg, JPEG etc.



Here's the script:

---

 #!/usr/bin/env python
from PIL import Image
import glob, os, re

size = 128, 128

# takes an extension (e.g. jpg, png, gif, tiff) as argument
def thumbnailer(extension):
#glob the directory the script is in for files of the type foo.extension
  for picture in glob.glob("*." + extension):
    file, ext = os.path.splitext(picture)
    im = Image.open(picture)
    im.thumbnail(size, Image.ANTIALIAS)
    im.save(file + ".thumbnail." + extension)


jpg = re.compile("jpg|jpeg", re.IGNORECASE)
thumbnailer(jpg)



---

And here's the error:

---

Traceback (most recent call last):
  File "./thumbnail.py", line 19, in ?
    thumbnailer(jpg)
  File "./thumbnail.py", line 11, in thumbnailer
    for picture in glob.glob("*." + extension):
TypeError: cannot concatenate 'str' and '_sre.SRE_Pattern' objects

---


It looks to me like the conversion to a regex object instead of a plain
string is screwing up the file glob + extension concatenation. Is there a
simple way to accomplish what I'm trying to do here and get rid of that
error?

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20070622/55fe2e30/attachment.html>


More information about the Python-list mailing list