web-dev-qa-db-fra.com

Comment obtenir le chemin du script Python dans lequel je cours?

Dupliquer:
En Python, comment puis-je obtenir le chemin et le nom du fichier en cours d'exécution?

Comment puis-je obtenir le chemin d'un script Python dans lequel je cours? Je faisais dirname(sys.argv[0]), cependant sur Mac, je ne reçois que le nom du fichier - pas le chemin complet comme je le fais sous Windows.

Où que mon application soit lancée, je souhaite ouvrir les fichiers relatifs à mes fichiers de script.

339
user34537

os.path.realpath(__file__) vous donnera le chemin du fichier actuel, en résolvant les liens symboliques dans le chemin. Cela fonctionne bien sur mon mac.

429
jblocksom

7.2 de Plonger dans Python: Trouver le chemin .

import sys, os

print('sys.argv[0] =', sys.argv[0])             
pathname = os.path.dirname(sys.argv[0])        
print('path =', pathname)
print('full path =', os.path.abspath(pathname)) 
92
Jon W
import os
print os.path.abspath(__file__)
86
Jason Coon

La solution acceptée pour cela ne fonctionnera pas si vous envisagez de compiler vos scripts avec py2exe. Si vous envisagez de le faire, voici l'équivalent fonctionnel:

os.path.dirname(sys.argv[0])

Py2exe ne fournit pas de variable __file__. Pour référence: http://www.py2exe.org/index.cgi/Py2exeEnvironment

36
Dan