Chemin absolu d'un fichier objet

Cela a été discuté sur StackOverflow avant - je suis en train d'essayer de trouver un bon moyen de trouver le chemin absolu d'un fichier objet, mais j'en ai besoin pour être robuste aux os.chdir(), ne peut donc pas utiliser

f = file('test')
os.path.abspath(f.name)

Au lieu de cela, je me demandais si ce qui suit est une bonne solution - essentiellement l'extension du fichier de classe ainsi que sur l'ouverture, le chemin d'accès absolu du fichier est enregistré:

class File(file):

    def __init__(self, filename, *args, **kwargs):
        self.abspath = os.path.abspath(filename)
        file.__init__(self, filename, *args, **kwargs)

Alors on peut faire

f = File('test','rb')
os.chdir('some_directory')
f.abspath # absolute path can be accessed like this

Sont les risques à cela?

Un descripteur de fichier ouvert peut avoir plusieurs liens et -- donc -- plusieurs noms de chemin d'accès absolu. Vous êtes en train de faire à l'envers. Pourquoi n'êtes-vous pas le calcul d'une voie d'abord, puis en ouvrant le fichier avec chemin d'accès absolu?
Quelques liens vers des AINSI en question serait utile dans la première ligne

OriginalL'auteur astrofrog | 2010-03-16