[Python-Dev] Add os.path.resolve to simplify the use of os.readlink (original) (raw)

Christian Heimes lists at cheimes.de
Thu Jun 21 12:52:28 CEST 2012


Am 21.06.2012 12:23, schrieb Armin Ronacher:

Due to an user error on my part I was not using os.readlink correctly. Since links can be relative to their location I think it would make sense to provide an os.path.resolve helper that automatically returns the absolute path:

def resolve(filename): try: target = os.readlink(filename) except OSError as e: if e.errno == errno.EINVAL: return abspath(filename) raise return normpath(join(dirname(filename), target)) The above implementation also does not fail if an entity exists but is not a link and just returns the absolute path of the given filename in that case.

+1

Does the code handle a chain of absolute and relative symlinks correctly, for example a relative symlink that points to another relative symlink in a different directory that points to a file in a third directry?

Christian



More information about the Python-Dev mailing list