Maison >développement back-end >Tutoriel Python >Comment pouvez-vous déterminer de manière fiable le chemin du fichier d'exécution en Python ?
Identifier le chemin d'accès au script Python en cours d'exécution est un aspect crucial pour diverses applications. Cependant, trouver une approche « universelle » qui fonctionne dans différents scénarios peut s’avérer difficile. Cet article explore plusieurs méthodes et aborde les limitations qui leur sont associées, présentant finalement une solution complète.
path = os.path.abspath(os.path.dirname(__file__)) : Cette méthode peut ne pas fonctionner dans les cas où :
Pour obtenir le chemin du fichier en cours d'exécution quel que soit le contexte d'exécution, une combinaison de fonctions des modules inspect et os peut être utilisée :
from inspect import getsourcefile from os.path import abspath path = abspath(getsourcefile(lambda:0))
Cette solution fournit une approche cohérente qui récupère le chemin du fichier source dans divers scénarios, notamment :
Considérant la structure de répertoires suivante :
C:. | a.py \---subdir b.py
Et le code dans a.py :
#! /usr/bin/env python import os, sys print "a.py: os.getcwd()=", os.getcwd() print execfile("subdir/b.py")
Et le code dans subdir/b.py :
#! /usr/bin/env python import os, sys print "b.py: os.getcwd()=", os.getcwd() print
La sortie de python a.py est :
a.py: os.getcwd()= C:\ b.py: os.getcwd()= C:\zzz
Cela démontre que os.getcwd() reflète le répertoire de travail du contexte d'exécution, qui peut différer de l'emplacement du script en cours d'exécution. En revanche, la solution proposée (abspath(getsourcefile(lambda:0))) renvoie systématiquement le chemin du fichier source du script, quel que soit le contexte d'exécution.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!