Obtenga el nombre de archivo y un número de línea en Python

Vaibhav Vaibhav 14 abril 2022
Obtenga el nombre de archivo y un número de línea en Python

Cuando trabajamos en aplicaciones del mundo real o proyectos paralelos, a menudo tenemos que recuperar números de línea y nombres de archivo para fines de depuración. En general, esto se hace para comprender qué código se ejecuta y cuándo o para analizar el flujo de control de cualquier aplicación. En este artículo, aprenderemos cómo obtener un número de línea y el nombre de archivo del script de Python usando Python.

Obtenga el nombre de archivo y un número de línea en Python

Para obtener el nombre del archivo y un número de línea del script Python en ejecución, podemos usar el módulo inspect de Python. El módulo inspect contiene varias utilidades para obtener información sobre objetos, clases, métodos, funciones, objetos de marco y objetos de código. Esta biblioteca tiene un método getframeinfo() que recupera información sobre un marco o un objeto de rastreo. Este método acepta un argumento de frame sobre el que recupera detalles. El método currentFrame() devuelve el objeto frame para el frame de la pila del llamante. Podemos utilizar estas utilidades para nuestro caso de uso. Consulta el siguiente código de Python para entender el uso.

from inspect import currentframe, getframeinfo

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

Producción :

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

Como podemos ver, el atributo filename devolverá la ruta completa al archivo de Python. En mi caso, el nombre del archivo de Python era main.py; por lo tanto, muestra main.py en la salida. Y, el atributo lineno devuelve el número de línea en el que se ejecutó esta instrucción frame = getframeinfo(currentframe()). La instrucción mencionada se ejecutó en la línea 3; por lo tanto, la salida tiene un 3 después de la etiqueta 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.

Artículo relacionado - Python File