Obtenir le nom de fichier et un numéro de ligne en Python

Vaibhav Vaibhav 14 avril 2022
Obtenir le nom de fichier et un numéro de ligne en Python

Lorsque vous travaillez sur des applications réelles ou des projets parallèles, nous devons souvent récupérer des numéros de ligne et des noms de fichiers à des fins de débogage. Généralement, cela est fait pour comprendre quel code est exécuté quand ou pour analyser le flux de contrôle de toute application. Dans cet article, nous allons apprendre à obtenir un numéro de ligne et le nom de fichier du script Python à l’aide de Python.

Obtenir le nom de fichier et un numéro de ligne en Python

Pour obtenir le nom du fichier et un numéro de ligne à partir du script Python en cours d’exécution, nous pouvons utiliser le module inspect Python. Le module inspect contient plusieurs utilitaires pour récupérer des informations sur les objets, les classes, les méthodes, les fonctions, les objets cadre et les objets de code. Cette librairie possède une méthode getframeinfo() qui récupère des informations sur une trame ou un objet traceback. Cette méthode accepte un argument frame dont elle récupère les détails. La méthode currentFrame() renvoie l’objet frame pour le cadre de pile de l’appelant. Nous pouvons utiliser ces utilitaires pour notre cas d’utilisation. Reportez-vous au code Python suivant pour comprendre l’utilisation.

from inspect import currentframe, getframeinfo

frame = getframeinfo(currentframe())
filename = frame.filename
line = frame.lineno
print("Filename:", filename)
print("Line Number:", line)

Production :

Filename: full/path/to/file/main.py
Line Number: 3

Comme nous pouvons le voir, l’attribut filename renverra le chemin complet vers le fichier Python. Dans mon cas, le nom du fichier Python était main.py ; par conséquent, il affiche main.py dans la sortie. Et, l’attribut lineno renvoie le numéro de ligne à laquelle cette instruction frame = getframeinfo(currentframe()) a été exécutée. L’instruction mentionnée a été exécutée à la ligne 3 ; par conséquent, la sortie a un 3 après l’étiquette Line Number.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python File