[Python-Dev] os.normpath may change the meaning of the path if itcontains symbolic links?

Fredrik Lundh fredrik at pythonware.com
Fri Dec 2 23:34:34 CET 2005


Nir Soffer wrote:
> However, I found this alarming note in the docs:
>> normpath(path)
> ...
> "It should be understood that this may change the meaning of the path
> if it contains symbolic links!"
>> The function docstring does not contain this note:
>> """Normalize path, eliminating double slashes, etc."""
>> And finally, there is no test for this symbolic link problem.
>> Anyone has a clue about this?

if BAR is a symbolic link, FOO/BAR/../DIR isn't necessarily the same
thing as FOO/DIR.
a simple example:
 $ ln -s /etc etc
 $ ls -ld etc
 lrwxrwxrwx 1 fredrik fredrik 4 Dec 2 23:22 etc -> /etc
 $ etc/../usr/local/bin/python2.4
 Python 2.4.1 (#1, Sep 12 2005, 19:35:02)
 ...
 >>> import os
 >>> os.path.normpath("etc/../usr/local/bin/python2.4")
 'usr/local/bin/python2.4'
 >>> <control-D>
 $ usr/local/bin/python2.4
 -bash: usr/local/bin/python2.4: No such file or directory
</F> 


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /