2010-07-19 12 views
22

Si j'ai un fichier test.py qui se trouve dans un répertoire, comment puis-je savoir depuis test.py dans quel répertoire il se trouve? os.path.curdir donnera le répertoire courant, mais pas le répertoire où le fichier existe. Si j'appelle test.py depuis un répertoire "foo", os.curdir retournera foo mais pas le chemin de test.py.trouver le chemin absolu vers un fichier à partir de python

merci.

Répondre

17

la réponse est d'utiliser:

__file__ 

qui retourne un chemin relatif.

os.path.abspath(__file__) 

peut être utilisé pour obtenir le chemin complet.

0

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

En particulier, vous voulez:

os.path.abspath 
28

Voici comment obtenir le répertoire du fichier en cours:

import os 
os.path.abspath(os.path.dirname(__file__)) 
+0

Cette réponse est la bonne et doit être marquée comme telle. – catalyst294

1
import os 
dirname, filename = os.path.split(os.path.abspath(__file__)) 
5

Les réponses à ce jour vous l'avez fait correctement os.path.abspath, qui fait exactement le travail que vous avez demandé. Cependant, n'oubliez pas que os.path.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 (que votre cas d'utilisation spécifique tombe parmi ces «nombreux» est impossible à dire de l'information limitée nous avons, bien sûr ;-).