Python, algunos ejemplos

From Wiki de Caballero
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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)

Importar json

json.loads

data = json.loads(open('config.json').read())
print('learning_rate: ' + str(data['learning_rate']) )

json.load

data = json.load(open('config.json'))
print('learning_rate: ' + str(data['learning_rate']) )

with open

with open('config.json') as config:
     data = json.load(config)
print('learning_rate: ' + str(data['learning_rate']) )