I'll stop boring people with my musings on what can only be described as a laughable effort at writing code now. Here's my closing observation on this mess I made: I've learned not to place anything but the simplest statements in a try: except, and also to not just do a gatling-gun except, but to trap for a specific type of error... in this case, a missing file (or miss-spelt file, or file-name / image_list mismatch) equates to an IOError. Which I'm doing now, correctly.
I've never done as well with try: except as I would like. Probably for similar reasons you mentioned, I try to do to much there. I often stick to if: else statements, but every now and then I've found the try: except is a real life saver.