Python NameError: el nombre Execfile no está definido
-
Alternativa a
execfile()
en Python 3 -
Use
exec()
para ejecutar un archivo de Python -
Use el bloque
with
para ejecutar un archivo Python usandoexec()
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
objeto
puede ser una cadena o un código de varias líneas. - Un parámetro
global
puede ser un diccionario. - 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
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.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python