Sesión 15: Persistencia básica de información¶
Objetivo¶
Registrar y recuperar información simple usando archivos de texto.
Producto de la sesión¶
Elabora un programa que escriba datos en un archivo y luego los lea para mostrarlos o procesarlos con resultados verificables.
Resultado esperado¶
Construye un programa que use archivos de texto para guardar, recuperar y procesar información, organizando la solución en entrada, proceso y salida.
Alcance de la sesión¶
- Uso de archivos de texto para persistir información simple.
- Aplicación de escritura, lectura, registro y recuperación de datos.
- Resolución de ejercicios guiados y práctica autónoma.
- Verificación de resultados con casos de prueba.
Base conceptual de la sesión¶
- persistencia
- archivos de texto
- escritura
- lectura
- registro y recuperación
1. Persistencia
Concepto Es la capacidad de conservar datos más allá de la ejecución del programa mediante almacenamiento externo.
Elementos o clasificación Persistencia en archivos de texto y recuperación en memoria.
Criterio de uso Permite separar la memoria temporal del programa de la información que necesita guardarse para usos posteriores.
Ejemplo de aplicación Guardar notas en un archivo para revisarlas después de cerrar el programa.
2. Archivos De Texto
Concepto Son documentos simples que guardan información legible como líneas de caracteres.
Elementos o clasificación Archivos línea por línea, registros separados por comas y texto plano.
Criterio de uso Son adecuados para guardar datos simples y legibles. Cada línea puede representar un registro.
Ejemplo de aplicación Productos.txt puede contener una línea por producto.
3. Escritura
Concepto Es el proceso de enviar datos desde el programa hacia un archivo para conservarlos.
Elementos o clasificación Escritura nueva y escritura agregada al final.
Criterio de uso La escritura crea o actualiza el contenido de un archivo. Debe cuidarse si se reemplaza todo el archivo o se agrega información al final.
Ejemplo de aplicación
archivo.write("Ana,18\n")
4. Lectura
Concepto Es el proceso de recuperar datos desde un archivo para mostrarlos o procesarlos dentro del programa.
Elementos o clasificación Lectura completa, lectura línea por línea y separación de campos.
Criterio de uso La lectura recupera datos desde un archivo y suele requerir limpieza o separación de campos antes de procesarlos.
Ejemplo de aplicación
for linea in archivo:
print(linea.strip())
5. Registro Y Recuperación
Concepto Agrupa las operaciones de guardar datos y volver a leerlos posteriormente de forma coherente.
Elementos o clasificación Guardar registros, leer registros y reconstruir datos.
Criterio de uso Registrar y recuperar exige mantener un formato consistente para que lo guardado pueda interpretarse correctamente después.
Ejemplo de aplicación
producto, precio = linea.strip().split(",")
Síntesis de la sesión Para resolver ejercicios, no basta con escribir instrucciones en Python. Es necesario reconocer los datos, nombrarlos correctamente, elegir operaciones o estructuras de control apropiadas y comprobar el resultado con casos de prueba.
| Aspecto | Pregunta guía |
|---|---|
| Entrada | ¿Qué datos necesita recibir el programa? |
| Proceso | ¿Qué cálculos, decisiones o repeticiones transforman los datos? |
| Salida | ¿Qué resultado debe mostrarse y con qué formato? |
| Prueba | ¿Con qué casos se demuestra que la solución funciona? |
Actividad práctica¶
La sesión se desarrolla con exploración inicial, ejercicios guiados, ejercicios de aplicación y una tarea tipo competencia.
Arquitectura¶
Entrada -> Proceso -> Salida
- Entrada: datos que se registrarán o recuperarán desde un archivo.
- Proceso: escritura, lectura y transformación de líneas según el formato definido.
- Salida: información mostrada, recuperada o procesada desde el archivo.
Mini laboratorio¶
Escribe y lee una línea en un archivo de texto para observar la idea básica de persistencia.
with open('demo.txt', 'w', encoding='utf-8') as archivo:
archivo.write('hola mundo')
with open('demo.txt', 'r', encoding='utf-8') as archivo:
print(archivo.read())
Ejercicio 1: Guardar y recuperar nombres¶
Guardaremos nombres en un archivo de texto y luego los recuperaremos para mostrarlos en pantalla.
Resolución guiada
- Comprender: explica con una oración completa cuál es el resultado que debe obtener el programa.
- Entradas: enumera cada dato de entrada e indica su tipo de dato esperado.
- Procesos:
- describe la operación, condición, recorrido o función principal que usarás para resolver el problema
- ordena las acciones principales antes de escribir el código
- prepara cómo obtendrás el resultado final antes de mostrarlo
- Salidas: especifica la salida esperada y el formato con que se debe mostrar.
- Pruebas:
- caso normal: usa datos habituales para comprobar que el resultado esperado se cumpla
- caso límite: prueba el valor exacto donde cambia la regla principal
- caso excepcional: revisa qué sucede con una entrada vacía, inválida o fuera de rango
- Código:
with open('nombres.txt', 'w', encoding='utf-8') as archivo:
archivo.write('Ana\n')
archivo.write('Luis\n')
with open('nombres.txt', 'r', encoding='utf-8') as archivo:
for linea in archivo:
print(linea.strip())
Ejercicio 2: Nombres numerados desde archivo¶
Guarda tres nombres de estudiantes en un archivo y luego léelos para mostrarlos numerados.
Resolución guiada
- Comprender: el programa debe resolver este problema: Guarda tres nombres de estudiantes en un archivo y luego léelos para mostrarlos numerados
- Entradas: separa claramente la parte de escritura y la de lectura
- Procesos:
- define el nombre del archivo
- ordena las operaciones o decisiones antes de escribir el código
- prepara el resultado final que mostrarás al usuario
- Salidas: muestra el resultado solicitado por el enunciado con mensajes claros y ordenados.
- Pruebas:
- comprueba que cada línea se recupere correctamente
- caso límite: prueba el valor exacto donde cambia la regla, condición o cálculo principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
with open('estudiantes.txt', 'w', encoding='utf-8') as archivo:
archivo.write('Ana\n')
archivo.write('Luis\n')
archivo.write('Marta\n')
with open('estudiantes.txt', 'r', encoding='utf-8') as archivo:
for indice, linea in enumerate(archivo, start=1):
print(indice, linea.strip())
Ejercicio 3: Productos con precio en archivo¶
Registra productos con su precio en un archivo de texto y luego recupéralos para mostrarlos en pantalla.
Resolución guiada
- Comprender: el programa debe resolver este problema: Registra productos con su precio en un archivo de texto y luego recupéralos para mostrarlos en pantalla
- Entradas: define el formato en que guardarás cada producto
- Procesos:
- separa escritura y lectura
- ordena las operaciones o decisiones antes de escribir el código
- prepara el resultado final que mostrarás al usuario
- Salidas: muestra el resultado solicitado por el enunciado con mensajes claros y ordenados.
- Pruebas:
- verifica que los datos recuperados sean legibles
- caso límite: prueba el valor exacto donde cambia la regla, condición o cálculo principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
with open('productos.txt', 'w', encoding='utf-8') as archivo:
archivo.write('cuaderno,5.5\n')
archivo.write('lapiz,1.2\n')
archivo.write('mochila,45.0\n')
with open('productos.txt', 'r', encoding='utf-8') as archivo:
for linea in archivo:
producto, precio = linea.strip().split(',')
print(producto, '->', precio)
Ejercicio 4: Ventas acumuladas en archivo¶
Agrega una nueva venta a un archivo existente y luego calcula el total leyendo todos los registros.
Resolución guiada
- Comprender: además de crear archivos, un programa debe poder agregar datos y procesar lo guardado.
- Entradas: ventas guardadas con formato
producto,precio. - Procesos:
- usa modo
apara agregar una línea sin borrar lo anterior - lee el archivo completo con modo
r - separa cada línea con
split()y acumula los precios convertidos afloat
- Salidas: registros leídos y total acumulado.
- Pruebas: ejecuta dos veces y observa que el archivo conserva registros anteriores.
- Código:
with open('ventas.txt', 'w', encoding='utf-8') as archivo:
archivo.write('cuaderno,5.5\n')
archivo.write('mochila,45.0\n')
with open('ventas.txt', 'a', encoding='utf-8') as archivo:
archivo.write('lapicero,1.2\n')
total = 0
with open('ventas.txt', 'r', encoding='utf-8') as archivo:
for linea in archivo:
producto, precio = linea.strip().split(',')
total += float(precio)
print(producto, precio)
print('Total vendido:', round(total, 2))
Ejercicio 5: Lista de productos desde archivo¶
Guarda tres productos con su precio en un archivo y luego léelos para mostrarlos en formato de lista.
Resolución guiada
- Comprender: redacta con tus palabras qué debe resolver la tarea.
- Entradas: define qué datos ingresan y el tipo que tendrán.
- Procesos:
- describe la estrategia, fórmula, condición, estructura o algoritmo que piensas aplicar
- ordena las acciones principales antes de escribir el código
- prepara cómo obtendrás el resultado final antes de mostrarlo
- Salidas: indica con claridad qué resultado debe mostrar o registrar la solución.
- Pruebas:
- caso normal: usa datos habituales para comprobar que la solución funcione
- caso límite: prueba el valor exacto donde cambia la regla principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
with open('productos_persistencia.txt', 'w', encoding='utf-8') as archivo:
archivo.write('cuaderno,5.5\n')
archivo.write('lapiz,1.2\n')
archivo.write('mochila,45.0\n')
with open('productos_persistencia.txt', 'r', encoding='utf-8') as archivo:
for linea in archivo:
producto, precio = linea.strip().split(',')
print('- ', producto, ': ', precio, sep='')
Aprendizaje autónomo¶
Desarrolle el producto de la sesión resolviendo una o más de las siguientes actividades mediante un programa con persistencia en archivos claramente identificable.
1 Guarda nombres o productos en un archivo y recupéralos para mostrarlos en pantalla.
# Actividad 1
2 Diseña un formato simple para registrar datos por línea y luego sepáralos correctamente al leer el archivo.
# Actividad 2
3 Verifica cómo cambia el archivo después de cada escritura y explica qué ocurre al usar escritura nueva o agregada.
# Actividad 3
Evaluación del producto de la sesión¶
Lista de cotejo para revisar el producto elaborado por el estudiante:
- Distingue claramente escritura, lectura y agregado de datos en archivos.
- Usa nombres de archivo consistentes y acordes al problema.
- Guarda datos en un formato legible y ordenado.
- Recupera la información guardada sin perder datos.
- Procesa líneas del archivo usando
strip()osplit()cuando corresponde. - Presenta resultados claros, ordenados y correctos según lo solicitado.
- Verifica el resultado revisando lo leído desde el archivo.
- Entrega la evidencia del trabajo realizado.