Hi,

I want to remove files that PIL can't open. But the following fails on Windows, because Image.open doesn't close the file.

----
import os
import Image
try:
    f = open('test.test', 'w')
    f.close()
    Image.open('test.test')
finally:
    os.remove('test.test')
----
results in:
WindowsError: [Error 32] The process cannot access the file because it is being
used by another process: 'test.test'


Below is a simple fix.

Regards,
Oliver

PS: please cc me on replies to the list.

----
--- PIL/Image.py.orig   2009-10-02 12:02:26.000000000 +0200
+++ PIL/Image.py        2009-10-02 12:03:12.000000000 +0200
@@ -1913,6 +1913,9 @@
         except (SyntaxError, IndexError, TypeError):
             pass

+    if filename:
+        fp.close()
+
     raise IOError("cannot identify image file")

 #

_______________________________________________
Image-SIG maillist  -  Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig

Reply via email to