Ermitteln des Dateinamens und einer Zeilennummer in Python

Vaibhav Vaibhav 14 April 2022
Ermitteln des Dateinamens und einer Zeilennummer in Python

Bei der Arbeit an realen Anwendungen oder Nebenprojekten müssen wir häufig Zeilennummern und Dateinamen zu Debugging-Zwecken abrufen. Im Allgemeinen geschieht dies, um zu verstehen, welcher Code wann ausgeführt wird, oder um den Steuerungsfluss einer Anwendung zu analysieren. In diesem Artikel erfahren wir, wie Sie mit Python eine Zeilennummer und den Dateinamen des Python-Skripts erhalten.

Ermitteln des Dateinamens und einer Zeilennummer in Python

Um den Dateinamen und eine Zeilennummer aus dem ausführenden Python-Skript zu erhalten, können wir das inspect-Modul Python verwenden. Das Modul inspect enthält mehrere Dienstprogramme zum Abrufen von Informationen über Objekte, Klassen, Methoden, Funktionen, Frame-Objekte und Code-Objekte. Diese Bibliothek hat eine getframeinfo()-Methode, die Informationen über einen Frame oder ein Traceback-Objekt abruft. Diese Methode akzeptiert ein frame-Argument, über das sie Details abruft. Die Methode currentFrame() gibt das Frame-Objekt für den Stack-Frame des Aufrufers zurück. Wir können diese Dienstprogramme für unseren Anwendungsfall verwenden. Sehen Sie sich den folgenden Python-Code an, um die Verwendung zu verstehen.

from inspect import currentframe, getframeinfo

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

Ausgabe:

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

Wie wir sehen können, gibt das Attribut filename den vollständigen Pfad zur Python-Datei zurück. In meinem Fall war der Name der Python-Datei main.py; Daher wird in der Ausgabe main.py angezeigt. Und das Attribut lineno gibt die Zeilennummer zurück, bei der diese frame = getframeinfo(currentframe())-Anweisung ausgeführt wurde. Die erwähnte Anweisung wurde in Zeile 3 ausgeführt; daher hat die Ausgabe eine 3 nach dem Label 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.

Verwandter Artikel - Python File