Python
Diccionarios
y
Archivos
Diccionarios
Los diccionarios son una estructura iterable de la forma clave: valor entre llaves {}
Creación de diccionarios
Diccionarios
Iterar diccionarios
Iteraciones
Hay variantes "iter" de los métodos .keys(), .values() e .items() llamados iterkeys(), itervalues() and iteritems() que evitan el costo de construir la lista completa para listas muy grandes.
Borrar
- El operador del normalmente borra la definicion de una variable, como si nunca se hubiese definido
- Se puede usar del en elementos o slices de una lista para borrarlos.
Material extra de lectura
Archivos
- La función open abre un archivo y devuelve su manejador
- Con el manejador se puede leer o escribir el archivo
- f = open('nombre_archivo', 'r') lo abre en la variable f, sólo para ser leído
- f.close() cierra el archivo
- 'r' para leer, 'w' para escribir y 'a' para agregar.
- 'rU' es un modo que es inteligente acerca de saltos de líneas, hace que siempre sean mostrados como '\n'.
- El bucle for lee línea por línea (sólo en archivos de texto, no binarios)
Ejemplo:
#!env/bin/python
# -*- coding: utf-8 -*-
# Muestra los contenidos de un archivo
f = open('foo.txt', 'rU')
for linea in f: ## itera sobre las linea del archivo
print linea, ## dejando la coma, print no agrega el
## caracter de fin de línea ya que 'linea'
## ya lo incluye al final de cada línea
f.close()
Lectura y escritura
- Al leer una línea a la vez no se carga todo el archivo en memoria, lo que permite leer tamaños de archivo ilimitados
- f.readlines() lee todo el archivo en memoria y lo retorna como una lista de líneas
- f.read() lee el archivo completo en una variable, como cadena.
- f.write(cadena) escribe en el archivo
Archivos Unicode
El módulo "codecs" provee soporte para leer un archivo unicode
import codecs
f = codecs.open('foo.txt', 'rU', 'utf-8')
for linea in f:
# acá 'linea' es una cadena *unicode*
Material de lectura extra
Practiquen desarrollo incremental
- No escribir todo el programa en 1 solo paso
- Identificar sólo 1 primer hito, por ejemplo: "extraer la lista de palabras"
- Escribir el código para alcanzar ese hito.
- Se puede agregar sys.exit(0) para que el programa no avance en partes no-terminadas.
- Una vez terminado ese hito, trabajar en el próximo.
- Ver las variables impresas en un estado puede ayudar a pensar en cómo transformarlas en el próximo estado.
- Pequeños algoritmos pueden ser creados y testeados en la consola
Python - Diccionarios y archivos
By Guillermo Nuñez
Python - Diccionarios y archivos
- 3,349