Granularity of OSError

Christian Heimes lists at
Sat Sep 19 02:23:27 CEST 2009

kj wrote:
> For example, LBYL would look like this:
> if os.path.isfile(some_file):
>     os.unlink(some_file)
> In contrast, EAFP would look like this:
> try:
>     os.unlink(some_file)
> except OSError:
>     pass

The two version aren't equal. The first one suffers from a race
condition which may lead to a severe security issue. The file may be
gone or replaced by a different file in the time span between the check
and the call to unlink().


More information about the Python-list mailing list