Difference between revisions of "Python, algunos ejemplos"
Line 31: | Line 31: | ||
import configTest | import configTest | ||
print(configTest.var1) | print(configTest.var1) | ||
</source> | |||
==Importar json== | |||
===json.loads=== | |||
<source lang="python"> | |||
data = json.loads(open('config.json').read()) | |||
print('learning_rate: ' + str(data['learning_rate']) ) | |||
</source> | |||
===json.load=== | |||
<source lang="python"> | |||
data = json.load(open('config.json')) | |||
print('learning_rate: ' + str(data['learning_rate']) ) | |||
</source> | |||
===with open=== | |||
<source lang="python"> | |||
with open('config.json') as config: | |||
data = json.load(config) | |||
print('learning_rate: ' + str(data['learning_rate']) ) | |||
</source> | </source> | ||
[[Category:Python]] | [[Category:Python]] |
Latest revision as of 17:54, 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)
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']) )