Granularity of OSError
Christian Heimes
lists at cheimes.de
Fri Sep 18 20:23:27 EDT 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().
Christian
More information about the Python-list
mailing list