Skip to content
This page has been auto-translated and may contain errors.View in English

Diario personal

Dex Hola. La verdad es que la misión ha sido mucho y tenía pensado llevar un registro. ¿Puedes crear una app de diario sencilla? Quiero escribir una nueva entrada, que se guarde con la fecha, y poder releer las antiguas. Nada complicado. Solo algo para sacarme los pensamientos de la cabeza ✍️

Lo que vas a construir

Commands: new / read / quit

> new
2026-05-24
Tuve una mañana productiva. Terminé el proyecto del gestor de inventario.
Entendí bien cómo funciona la serialización JSON.

[press Enter on an empty line to save]
Entry saved.

> read
--- 2026-05-24 ---
Tuve una mañana productiva. Terminé el proyecto del gestor de inventario.
Entendí bien cómo funciona la serialización JSON.

--- 2026-05-23 ---
...

> quit

Lo que necesitarás

Pistas

El modo append es la clave. Abrir un archivo con "a" agrega contenido al final sin tocar lo que ya está. Así es como las nuevas entradas se añaden sin borrar las antiguas.

datetime.date.today() te da la fecha. Conviértela en cadena con str() o un f-string para usarla como encabezado de la entrada. El módulo datetime está en la biblioteca estándar.

Reúne la entrada antes de escribirla. Deja que el usuario escriba varias líneas, agregando cada una a una lista. Cuando envíe una línea vacía, une la lista y escribe la entrada completa de una vez.

Llevándolo más lejos

Una vez que el diario básico funcione:

  • Limita lo que muestra read. Imprimir siempre todo el archivo se vuelve incómodo rápidamente. Muestra solo las últimas tres entradas por defecto, con una opción para mostrar más.
  • Buscar entradas. Agrega un comando search que imprima cualquier entrada que contenga una palabra clave.
  • Conteo de palabras por entrada. Muestra cuántas palabras contiene cada entrada al mostrarla.