win32 How to make sure a file is completely written?
mabdelkader at gmail.com
Mon May 11 10:02:21 EDT 2009
You have to wait until IO is ready. In Unix, we accomplish this with
fcntl and the default signal SIGIO, I am not sure how you would do
this in Windows.
On Mon, May 11, 2009 at 9:51 AM, justind <justin.donato at gmail.com> wrote:
> I'm using http://code.activestate.com/recipes/156178/ to watch a
> folder in windows. It's working perfectly, but sometimes when I try to
> open the file immediately after receiving the event, it's not ready to
> be opened--if I try to open it with PIL I get "IOError: cannot
> identify image file" and if I try it with a text file, it's empty.
> This doesn't happen all the time, just occasionally. I think the
> problem is that the file isn't completely written because if I make
> the script sleep for a second, it works every time. But that doesn't
> seem very elegant or robust.
> What's the proper way to make sure the file is ready to be read?
> I'm just passing the file names from the above recipe to a function.
> Something like
> def handler(files):
> for file in files:
> im = Image.open(file)
More information about the Python-list