[Python-Dev] Updates to PEP 471, the os.scandir() proposal
victor.stinner at gmail.com
Tue Jul 8 21:55:59 CEST 2014
Le mardi 8 juillet 2014, Ben Hoyt <benhoyt at gmail.com> a écrit :
> > It is not clear to me which methods share the cache.
> > On UNIX, is_dir() and is_file() call os.stat(); whereas lstat() and
> > is_symlink() call os.lstat().
> > If os.stat() says that the file is not a symlink, I guess that you can
> > use os.stat() result for lstat() and is_symlink() methods?
> > In the worst case, if the path is a symlink, would it be possible that
> > os.stat() and os.lstat() become "inconsistent" if the symlink is
> > modified between the two calls? If yes, I don't think that it's an
> > issue, it's just good to know it.
> > For symlinks, readdir() returns the status of the linked file or of the
> I think you're misunderstanding is_dir() and is_file(), as these don't
> actually call os.stat(). All DirEntry methods either call nothing or
> os.lstat() to get the stat info on the entry itself (not the
> destination of the symlink).
Oh. Extract of your PEP: "is_dir(): like os.path.isdir(), but much cheaper".
genericpath.isdir() and genericpath.isfile() use os.stat(), whereas
posixpath.islink() uses os.lstat().
Is it a mistake in the PEP?
> In light of this, I don't think what you're describing above is an issue.
I'm not saying that there is an issue, I'm just trying to understand.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev