Python NameError: el nombre Execfile no está definido

Fariba Laiq 21 junio 2023
  1. Alternativa a execfile() en Python 3
  2. Use exec() para ejecutar un archivo de Python
  3. Use el bloque with para ejecutar un archivo Python usando exec()
Python NameError: el nombre Execfile no está definido

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().

  1. Un objeto puede ser una cadena o un código de varias líneas.
  2. Un parámetro global puede ser un diccionario.
  3. Un local puede 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
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Python Error