676 votes

Obtenir le nom du script actuel en Python

Je suis en train d'essayer d'obtenir le nom du script Python qui est actuellement en cours d'exécution.

J'ai un script appelé foo.py et j'aimerais faire quelque chose comme ceci pour obtenir le nom du script :

print(Nom_du_script)

1 votes

Python 2 est obsolète. Utilisez print(var) à la place.

1 votes

Elia Iliashenko, "a demandé le 11 nov. '10 à 9h32"

44voto

Emil Melnikov Points 346

Pour les versions modernes de Python (3.4+), Path(__file__).name devrait être plus idiomatique. De plus, Path(__file__).stem vous donne le nom du script sans l'extension .py.

0 votes

NameError: le nom 'Path' n'est pas défini

15 votes

Vous devriez d'abord importer from pathlib import Path.

0 votes

"moderne" signifie Python 3.x ?

14voto

elad silver Points 224

À partir de Python 3.5, il suffit de faire :

from pathlib import Path
Path(__file__).stem

Voir plus ici : https://docs.python.org/3.5/library/pathlib.html#pathlib.PurePath.stem

Par exemple, j'ai un fichier dans mon répertoire utilisateur nommé test.py avec ceci à l'intérieur :

from pathlib import Path

print(Path(__file__).stem)
print(__file__)

en exécutant ceci, voici le résultat :

>>> python3.6 test.py
test
test.py

12voto

Gajendra D Ambi Points 1106

Si vous effectuez une importation inhabituelle (par exemple, il s'agit d'un fichier d'options), essayez :

import inspect
print (inspect.getfile(inspect.currentframe()))

Notez que cela renverra le chemin absolu vers le fichier.

0 votes

C'est finalement ce qui a fonctionné lorsque le fichier actuel est invoqué depuis env.SConscript dans le système de construction de platform.io.

11voto

demas Points 10567

Essayez ceci :

imprimer __fichier__

9voto

JohnStone Points 172

Le premier argument dans sys sera le nom du fichier actuel donc cela fonctionnera

import sys
print sys.argv[0] # affichera le nom du fichier

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X