win32 How to make sure a file is completely written?

ma mabdelkader at
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> wrote:
> Hello,
> I'm using 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 =
> Thanks
> --

More information about the Python-list mailing list