Beruflich Dokumente
Kultur Dokumente
Persistencia
Cuando se almacena en la memoria principal, luego de desconectar la energa elctrica, la
informacin se pierde.
Se dice que un programa es persistente si corren por un largo periodo de tiempo y almacenan
sus datos en medios de almacenamiento permanente. Si la computadora se reinicia o apaga, el
programa puede cargar sus datos.
Ejemplos de programas persistentes: un SO, Servidores Web
Una de las maneras ms simples de mantener sus datos es a travs de archivos de texto. Una
alternativa es usar Bases de Datos
Lectura y escritura
Un archivo de texto es una secuencia de caracteres almacenados en un medio permanente
LECTURA
archivo = open("datos.txt")
#linea = archivo.readline()
for linea in archivo:
print linea.strip()
ESCRITURA
archivo = open("salida.txt", "w")
print archivo
linea = "Esta es la primera linea \n"
linea2 = "Esta es la segunda linea \n"
archivo.write(linea)
archivo.write(linea2)
archivo.close()
EL OPERADOR FORMATO
El argumento de la funcin write debe ser un string. Si se desea escribir otros valores al
archivo, deben ser convertidos a string. Se puede usar la funcin str()
Una alternativa es usar el operador formato %. Cuando se aplica a enteros, % es el mdulo.
Pero cuando el primer operando es un string, % es el operador formato
numero = 42.5
print '%.2f' % numero
print '%10.2f' % numero
print '%d' % numero
print '%04d' % numero
#salida
42.50
42.50
42
0042
import os
print os.path.abspath('datos.txt') #
/home/andres/workspace/Primero/paquete1/datos.txt
C:\Users\Andres\workspace\primeroPython\fuentes\primero\datos.txt
RECORRER UN DIRECTORIO
def walk(dir):
for name in os.listdir(dir):
path = os.path.join(dir, name)
if os.path.isfile(path):
print path
else:
walk(path)
walk("D:/Andres/libros")
EJERCICIO:
Revisar la funcin os.walk()
Manejo de excepciones
si se intenta abrir un archivo que on existe, se obtendr un error del tipo IOError:
>>> fin = open('bad_file')
Para evitar estos errores se pueden usar funciones como os.path.exists y os.path.isfile
#salida
Python comienza ejecutando la clausula Try. Si todo va bien, se salta la clausula Except. Si se
da una excepcin (error de ejecucin), salta inmediatamente a la clusula except
El proceso de capturar excepciones se denomina catching. En general, cuando se captura una
excepcin se debe: arreglar el problema, intentarlo nuevamente o terminar el programa
Bases de Datos
Una Base de Datos es un archivo que est organizado para almacenar datos. La mayora de
bases de datos estn organizadas como un diccionario (clave:valor). La diferencia es que la BD
est en disco.
El mdulo anydbm provee una interfaz para crear y actualizar archivos de base de datos.
EJEMPLO:
import anydbm
RECORRER LA BD:
import anydbm
db = anydbm.open('captions.db', 'c')
for key in db:
print key
db.close()
#Salida:
cleese.png
cleese2.png
cleese3.png
Pickling
La limitacin con la BD es que las claves y valores deben ser strings. El mdulo pickle puede
ayudar. Traduce todo tipo de objetos en strings y lo traduce de vuelta como strings.
Ejemplo:
import pickle
t=[1,2,3]
print pickle.dumps(t)
Out[14]: '(lp0\nI1\naI2\naI3\na.'
PARA CARGAR UN STRING:
import pickle
t1 = [1, 2, 3]
s = pickle.dumps(t1)
t2 = pickle.loads(s)
print t2
#Salida
[1, 2, 3]
t1 = [1, 2, 3]
db = anydbm.open('alumnos.db', 'c') #c indica que debe ser creada
db.close()
db = anydbm.open('alumnos.db', 'c')
print pickle.loads(db['Juan'])['apellido']
print pickle.loads(db['Juan'])['promedios']
db.close()
#Salida
Perez
[1, 2, 3]
Shelve
import shelve
personas = shelve.open('personas.db')
personas.close()
personas = shelve.open('personas.db')
print personas['010357']
print personas['010357']['nombre']
print personas['010357']['edad']
print personas['010357']['notas']
print personas['010357']['notas'][2]