Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
Description
Documentation
Many functions inos
do not properly specify whether or not they follow symlinks. TheFiles and Directories even slightly implies that the default is more to follow symlinks (and only withfollow_symlinks=False
not).
For some functions (likeos.rmdir()
one might argue this is not important because they're the counterparts of well-known POSIX/C functions and for them it's well-defined.
But e.g.os.removedirs()
seem to have no such counterpart and since the documentation doesn't mention anything, the current behaviour (which AFAICS isnot following symlinks) might just be some implementation detail.
Foros.removedirs()
there are even two interesting cases in e.g.os.removedirs("a/b/c/d")
:
- if
d
(i.e. the final pathname component) is a symlink to a directory the referred directory is not removed (at least not in the current code, which usesos.rmdir()
on the pathname) - if e.g.
b
is a symlink to a directory, which contains onlyc/d
, thenb
is followed whenrmdir
inga/b/c/d
anda/b/c
but isnot followed whenrmdir
inga/b
(and the target ofb
isn’t removed).
All this kinda follows the spirit of POSIX' pathname resolution, but still it would IMO be nice to have it clearly defined.
Cheers,
Chris.
Metadata
Metadata
Assignees
Labels
Projects
Status