167 votes

Obtenir le chemin du fichier ouvert en Python

Si j'ai un fichier ouvert, y a-t-il un os pour obtenir le chemin complet sous forme de chaîne ?

 f = open('/Users/Desktop/febROSTER2012.xls')

À partir de f , comment obtiendrais-je "/Users/Desktop/febROSTER2012.xls" ?

195voto

Tadeck Points 37046

La clé ici est le name attribut de l' f objet représentant le fichier ouvert. Vous l'obtenez comme ça :

 >>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> f.name
'/Users/Desktop/febROSTER2012.xls'

Aide-t-il?

157voto

Zans Points 1201

J'ai eu exactement le même problème. Si vous utilisez un chemin relatif, os.path.dirname(path) ne renverra que le chemin relatif. os.path.realpath fait l'affaire :

 >>> import os
>>> f = open('file.txt')
>>> os.path.realpath(f.name)

17voto

Ali Raza Bhayani Points 395

Et si vous voulez juste obtenir le nom du répertoire et pas besoin du nom de fichier qui l'accompagne, vous pouvez le faire de la manière conventionnelle suivante en utilisant le module Python os

 >>> import os
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> os.path.dirname(f.name)
>>> '/Users/Desktop/'

De cette façon, vous pouvez obtenir la structure du répertoire.

8voto

answerSeeker Points 1137

Vous pouvez l'obtenir comme ça aussi.

 filepath = os.path.abspath(f.name)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X