trouver le chemin absolu vers un fichier à partir de python

Si j'ai un fichier test.py qui se trouve dans un répertoire, comment puis-je savoir à partir de test.py ce répertoire, il est en? {[2] } donnera le répertoire courant mais pas le répertoire où se trouve le fichier. Si j'invoque test.py depuis un répertoire foo, os.curdir retourne foo mais pas le chemin de test.py.

Merci.

22
demandé sur phoenix 2010-07-19 21:17:22

5 réponses

Voici comment obtenir le répertoire du fichier courant:

import os
os.path.abspath(os.path.dirname(__file__))
30
répondu Sam Dolan 2010-07-19 17:20:19

La réponse est d'utiliser:

 __file__

Qui renvoie un chemin relatif.

os.path.abspath(__file__) 

Peut être utilisé pour obtenir le chemin complet.

18
répondu user248237dfsf 2010-07-19 17:19:13

Les réponses jusqu'à présent vous ont correctement indiqué os.path.abspath, qui fait exactement le travail que vous avez demandé. Cependant, n'oubliez pas que os.chemin.normpath et os.path.realpath peuvent également être très utiles dans ce genre de tâches (pour normaliser la représentation, et supprimer les liens symboliques, respectivement) dans de nombreux cas (si votre cas d'utilisation spécifique tombe parmi ces "nombreux" est impossible à dire à partir du peu d'informations que nous avons, bien sûr;-).

5
répondu Alex Martelli 2010-07-19 17:33:33
import os
dirname, filename = os.path.split(os.path.abspath(__file__))
1
répondu ars 2010-07-19 17:20:29

os.path a beaucoup d'outils pour traiter les chemins et obtenir des informations sur les chemins.

En particulier, vous voulez:

os.path.abspath
0
répondu Donald Miner 2010-07-19 17:19:36