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

Diário pessoal

Dex Ei. Sinceramente, a missão tem sido muita coisa e eu venho querendo manter um registro. Você pode construir um aplicativo de diário simples? Quero digitar uma nova entrada, tê-la salva com a data, e poder reler as antigas. Nada complicado. Só algo para tirar os pensamentos da minha cabeça ✍️

O que você vai construir

Commands: new / read / quit

> new
2026-05-24
Tive uma manhã produtiva. Terminei o projeto do gerenciador de inventário.
Entendi como a serialização JSON funciona direito.

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

> read
--- 2026-05-24 ---
Tive uma manhã produtiva. Terminei o projeto do gerenciador de inventário.
Entendi como a serialização JSON funciona direito.

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

> quit

O que você vai precisar

Dicas

O modo append é a chave. Abrir um arquivo com "a" adiciona ao final sem tocar no que já existe. É assim que novas entradas entram sem apagar as antigas.

datetime.date.today() te dá a data. Converta-a para string com str() ou uma f-string para usá-la como cabeçalho da entrada. O módulo datetime está na biblioteca padrão.

Colete a entrada antes de escrever. Deixe o usuário digitar várias linhas, adicionando cada uma a uma lista. Quando ele enviar uma linha vazia, junte a lista e escreva a entrada inteira de uma vez.

Indo além

Quando o diário básico estiver funcionando:

  • Limite o que o read mostra. Imprimir o arquivo inteiro sempre fica inviável rápido. Mostre apenas as três últimas entradas por padrão, com uma opção para mostrar mais.
  • Buscar entradas. Adicione um comando search que imprima qualquer entrada contendo uma palavra-chave.
  • Contagem de palavras por entrada. Mostre quantas palavras cada entrada contém ao exibi-la.