HOWTO · Python
Python NameError: el nombre Execfile no está definido
Este tutorial demuestra NameError: name execfile no está definido, su causa y la forma de resolver este error en Python 3.
En esta página
En Python 2, hay una función incorporada execfile() en la que un archivo se analiza y evalúa como declaraciones de Python. Esta función ya no está en Python 3.
Este artículo demuestra la posible alternativa a la ejecución de un archivo en Python 3.
Alternativa a execfile() en Python 3
En Python 2, usamos la función execfile() para ejecutar un archivo. En Python 3, tenemos una función similar llamada exec().
Primero, abriremos y leeremos el archivo y lo pasaremos como argumento a la función exec().
la función exec() en Python 3
La función exec() de Python ejecuta un bloque de código creado dinámicamente, pasado como una cadena.
Sintaxis general:
# Python 3.x
exec(object, global, local)
Se requieren tres parámetros para la función exec().
- Un
objetopuede ser una cadena o un código de varias líneas. - Un parámetro
globalpuede ser un diccionario. - Un
localpuede ser un diccionario de mapas.
Tanto los parámetros locales como los globales son opcionales. Además, el exec() es una función nula y no devuelve ningún valor.
El siguiente código demuestra el funcionamiento básico de esta función. La cadena "programar es divertido" se imprime en el siguiente código.
Se realizan tres operaciones matemáticas y se pasan individualmente a la función exec().
De manera similar, podemos agregar varias líneas a una cadena, y cada línea se analiza, se considera como declaraciones de Python y se ejecuta.
Código de ejemplo:
# Python 3.x
exec('print("programming is fun")')
exec('x=4; y=9; print("Multiplication:", x*y)')
w = 200
exec("print(w == 200)")
exec("print(w / 100)")
Producción :
programming is fun
Multiplication: 36
True
2.0
Use exec() para ejecutar un archivo de Python
Ahora, si queremos ejecutar un archivo Python externo en nuestro código, primero debemos abrir el archivo, leerlo y pasarlo a la función exec() como argumento.
Aquí hemos creado un archivo, myfile.py en nuestro directorio relativo, que contiene el siguiente código.
# Python 3.x
print("Delftstack")
Para ejecutar este archivo en nuestro código Python, primero lo abriremos usando open(), luego lo leeremos usando la función read() y finalmente lo ejecutaremos usando la función exec().
Código de ejemplo:
# Python 3.x
exec(open("myfile.py").read())
Producción :
Delftstack
Use el bloque with para ejecutar un archivo Python usando exec()
El bloque con cierra de forma segura el archivo (automáticamente) cuando llega al final del bloque, asegurando que ninguno de los archivos permanezca abierto.
Código de ejemplo:
# Python 3.x
with open("myfile.py", "r") as f:
exec(f.read())
Producción :
Delftstack