Difference between revisions of "Python, algunos ejemplos"
(One intermediate revision by the same user not shown) | |||
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"> | ||
Line 33: | 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']) )