Python, algunos ejemplos

From Wiki de Caballero
Revision as of 17:54, 18 March 2018 by Felipe (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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']) )