Está en la página 1de 23

Fundamentos de

Programación
CCPG1001
Francisco Ramirez Mendez
Agenda
• Conceptos básicos de archivos.
• Operaciones de entrada y salida
utilizando archivos.
Objetivos
• Distinguir entre almacenamiento temporal y
persistente para un manejo de datos adecuado.
• Identificar los tipos de archivos para su
correcta manipulación en un programa.
• Utilizar operaciones de lectura y escritura
propias de archivos para la manipulación y
análisis de datos almacenados.
Conceptos básicos de archivos
Archivos
• Python ofrece funciones y métodos para manejar
archivos secuenciales de texto en disco.

• Estas instrucciones permiten almacenar los datos


en disco, de manera que se puedan conservar y
usar posteriormente.

• La información que se almacena son cadenas de


texto.
Operaciones de entrada y
salida con archivos
Abriendo Tipos de Operación:
• ‘w’: Crear el archivo y agregar datos, si el archivo
un archivo existe lo borra y lo crea.
• ‘a’: Agregar datos al archivo, Si el archivo no
existe lo crea. Siempre agrega los datos en una
nueva línea al final del archivo
• ‘r’: Leer datos del archivo
• ‘r+’: Leer y modificar el archivo.

Tipo de
file = open(“miarchivo.txt”, type ) operación
sobre el
archivo
Nombre del archivo
• ¿Qué pasa si abrimos un archivo que
Abriendo no existe, en modo escritura ‘w’?
un archivo
file = open(“miarchivo.txt”, type )

El archivo es creado en el directorio


donde se encuentra el script de Python
en el que nos encontramos trabajando.
• ¿Qué pasa si abrimos un mismo
Abriendo archivo dos veces en modo escritura?
un archivo
file = open(“miarchivo.txt”, “w”)

file1 = open(“miarchivo.txt”, “w”))

Si no cerramos el archivo y ejecutamos


operaciones de escritura, los datos se
sobrescribirán.
Leyendo el >> v = f.readline()

contenido Variable donde se


almacenará la línea
de un
archivo readline() lee una línea de texto del archivo
hasta encontrar el carácter de fin de línea:
‘\n’

Si no quedan líneas , retorna una línea


vacía
Leyendo el >> v = f.readlines()

contenido v es una lista cuyos


elementos son las líneas del
de un archivo.

archivo
readline() Transfiere a una lista todas las
líneas de texto del archivo.
Escribiendo >> f.writelines (ls)

en un Cadena de caracteres a ser


escrita en el archivo
archivo
writelines() recibe como argumento una
lista de cadenas, escribe todos los
elementos de la lista en un archivo. El
caracter de fin de línea ‘\n’ no es
agregado si los elementos de la lista no
lo tienen.
>> p=f.tell()
Otras Entero que almacenará la posición actual

funciones • tell() detecta la posición actual de la


lectura en el archivo
>> f.seek(d)
Entero que especifica el desplazamiento
contado a partir del inicio (posición 0)

• seek() ubica la lectura del archivo en


una posición especificada
Cerrando • Al finalizar la operación con un archivo, este debe
cerrarse.
un archivo • En el ingreso de datos, esta operación se necesita
para completar el ingreso de los datos en el
archivo.

>> f.close()

Si abres un archivo, siempre debes cerrarlo


una vez que hayas finalizado con las
operaciones.
Preguntas

Esta foto de Autor desconocido está bajo licencia CC BY-NC-ND


Ejercicios • Transacciones de ventas entre países.
• Almacenadas en un archivo diferente por cada
categoría (Flores, Frutas, Maderas, etc.) de
producto.
• Note que un país puede vender el mismo
producto al mismo comprador, pero en una fecha
diferente.

Flores.txt o Frutas.txt o Maderas.txt o etc


Comprador,Vendedor,Producto,UnidadesVendidas,VentasEn$,Fecha
Estados Unidos,Ecuador,rosas,59284,631432.21,2018-01-10
Holanda,Japon,tulipanes,2384,12434.87,2017-11-22

Estados Unidos,Ecuador,girasoles,38284,331432.75,2018-02-0
Ejercicios • Defina la función
calculaTotales(categoria)
• Que recibe el nombre de una categoría.
• Leer el archivo para esa categoría
• Retornar un diccionario de totales con la siguiente
estructura:
• Clave como tupla

# Retornar diccionario
totales = {(comprador,vendedor,producto):totalUnidades}

# ejemplo
{('Estados Unidos','Ecuador','rosas'):257868}

# formato de archivos
Flores.txt o Frutas.txt o Maderas.txt o etc
Comprador,Vendedor,Producto,UnidadesVendidas,VentasEn$,Fecha
Estados Unidos,Ecuador,rosas,59284,631432.21,2018-01-10
Ejercicios • Defina la función
calculaTotales(categoria)
• Que recibe el nombre de una categoría.
• Leer el archivo para esa categoría
• Retornar un diccionario de totales con la siguiente
estructura:
• Clave como string separado con signo -

# Retornar diccionario
totales = {comprador_vendedor_producto:totalUnidades}

# ejemplo
{'Estados Unidos-Ecuador-rosas':257868}

# formato de archivos
Flores.txt o Frutas.txt o Maderas.txt o etc
Comprador,Vendedor,Producto,UnidadesVendidas,VentasEn$,Fecha
Estados Unidos,Ecuador,rosas,59284,631432.21,2018-01-10
Ejercicios • Defina la función
consolidado(nomArchivo, categorias)
• Recibe una lista de categorías.
• Genera un archivo con nombre nomArchivo
• Listar todos los totales de unidades vendidas
acumulados por Comprador, Vendedor,
Producto.
• El archivo tendrá la siguiente estructura:
# estructura
Comprador,Vendedor,Categoria,Producto,TotalUnidadesVendidas

# formato de archivos
Flores.txt o Frutas.txt o Maderas.txt o etc
Comprador,Vendedor,Producto,UnidadesVendidas,VentasEn$,Fecha
Estados Unidos,Ecuador,rosas,59284,631432.21,2018-01-10
Ejercicios • Defina la función
ventasCategorias(nomArchivo, dicCat)
• Recibe el nombre del archivo consolidado y un
diccionario con claves de categorías y valores con
listas de productos ordenados alfabéticamente.
• Generar un archivo con el nombre de cada
categoría y extensión “.txt”.
• Cada archivo debe contener los 5 países que han
vendido menos productos para esa categoría​.
# estructura
País,Total_Ventas

# formato de archivos
Flores.txt o Frutas.txt o Maderas.txt o etc
Comprador,Vendedor,Producto,UnidadesVendidas,VentasEn$,Fecha
Estados Unidos,Ecuador,rosas,59284,631432.21,2018-01-10
Bibliografía
• Texto guía
• Rodríguez, Luis. Python Programación Luis
Rodríguez, Python Programación.
• Downey, A., Elkner, J., & Meyers, C. (2012). How
to think like a computer scientist: learning with
python. Green Tea Press, Wellesley,
Massachusetts.
Siguiente Próxima sesión
• Ejercicios con diccionarios
Gracias

También podría gustarte