Difference between revisions of "Python, algunos ejemplos"
Line 1: | Line 1: | ||
==execfile en Python 3 (o cómo incluir un archivo en Python 3)== | |||
Se puede incluir un archivo como si hiciera parte del mismo archivo, algo útil por ejemplo para separar archivos y evitar que se vuelvan muy largos. En PHP esto se logra con <code>include 'archivo.php'</code> (o <code>require 'archivo.php'</code>). En Python 2 se lograba con <code>execfile</code> pero esta funcionalidad se eliminó en Python 3 por lo que la solución es hacer lo siguiente: | Se puede incluir un archivo como si hiciera parte del mismo archivo, algo útil por ejemplo para separar archivos y evitar que se vuelvan muy largos. En PHP esto se logra con <code>include 'archivo.php'</code> (o <code>require 'archivo.php'</code>). En Python 2 se lograba con <code>execfile</code> pero esta funcionalidad se eliminó en Python 3 por lo que la solución es hacer lo siguiente: | ||
<source lang="python"> | <source lang="python"> |
Revision as of 17:31, 18 March 2018
execfile en Python 3 (o cómo incluir un archivo en Python 3)
Se puede incluir un archivo como si hiciera parte del mismo archivo, algo útil por ejemplo para separar archivos y evitar que se vuelvan muy largos. En PHP esto se logra con include 'archivo.php'
(o require 'archivo.php'
). En Python 2 se lograba con execfile
pero esta funcionalidad se eliminó en Python 3 por lo que la solución es hacer lo siguiente:
# En vez de
# execfile("./filename")
exec(open("./filename").read())
Incluir archivos de configuración ejecutados
Si queremos ejecutar un archivo y usarlo como si hiciese parte del archivo donde se incluye se puede hacer una de las siguientes opciones (seguramente hay más). El archivo a insertar puede ser por ejemplo este config.py:
import random # usado para random a continuación
# Se crea una variable
var1 = "hola" + str(random.random())
# Se hace algun proceso, en ese caso solo se imprime un texto
print('Hello World')
exec
Se puede usar exec
de la siguiente manera:
exec(open("./configTest.py").read())
print(var1)
import
Se puede usar import
aunque la diferencia con el ejemplo anterior es que para acceder a las variables se hace como objeto. Queda un poco más ordenado y evita choque de variables en el mismo scope.
import configTest
print(configTest.var1)