J'ai des scripts de l'appel à d'autres fichiers de script mais j'ai besoin d'obtenir le chemin d'accès du fichier qui est actuellement en cours d'exécution dans le processus. Par exemple, disons que j'ai trois fichiers. À l'aide de execfile, script_1.py appels script_2.py. À son tour, script_2.py appels script_3.py. Comment puis-je obtenir le nom de fichier et le chemin d'accès de script_3.py *à partir du code à l'intérieur script_3.py* sans avoir à passer cette info que l'argument de script_2.py? (L'exécution de l'os.getcwd() retourne l'original script de démarrage du filepath pas le fichier en cours.)
Réponses
Trop de publicités?
user13993
Points
257
Usagi
Points
1004
Je pense que c'est plus propre:
import inspect
print inspect.stack()[0][1]
et obtient les mêmes informations que:
print inspect.getfile(inspect.currentframe())
Où [0] est l'image courante dans la pile (en haut de la pile) et [1] pour le nom de fichier, l'augmentation de revenir en arrière dans la pile, c'est à dire
print inspect.stack()[1][1]
serait le nom de fichier du script qui appelle l'image en cours. Aussi, à l'aide de [-1] vous rendre sur le bas de la pile, l'original script d'appel.
vishal ekhe
Points
99