Difference between revisions of "Python, algunos ejemplos"

From Wiki de Caballero
Jump to navigation Jump to search
(Created page with "==Python 3== ===execfile en Python 3=== <source lang="python"> # En vez de # execfile("./filename") exec(open("./filename").read()) </source> Category:Python")
 
Line 1: Line 1:
==Python 3==
==Python 3==


===execfile en Python 3===
===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:
<source lang="python">
<source lang="python">
# En vez de
# En vez de
#  execfile("./filename")  
#  execfile("./filename")  
exec(open("./filename").read())
exec(open("./filename").read())
</source>
==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:
<source lang="python">
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')
</source>
===exec===
Se puede usar <code>exec</code> de la siguiente manera:
<source lang="python">
exec(open("./configTest.py").read())
print(var1)
</source>
===import===
Se puede usar <code>import</code> 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''.
<source lang="python">
import configTest
print(configTest.var1)
</source>
</source>


[[Category:Python]]
[[Category:Python]]

Revision as of 17:30, 18 March 2018

Python 3

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)