8.3.2: Resolução com Ficheiros Binários

Nesta parte do projeto, vais implementar a solução usando ficheiros binários. Vais recolher os dados dos utilizadores, guardá-los num ficheiro binário e permitir ao utilizador ler os dados guardados.

Passo 1: Pedir os Dados do Utilizador

      
  import struct

  # Pedir o nome e a idade de três utilizadores
  utilizadores = []

  for i in range(3):
      nome = input("Introduz o nome do utilizador (máximo 20 caracteres): ")
      nome = nome[:20].ljust(20)  # Garantir que o nome tem exatamente 20 caracteres
      idade = int(input("Introduz a idade do utilizador: "))
      utilizadores.append((nome, idade))
      
    

Passo 2: Guardar os Dados num Ficheiro Binário

      
  # Guardar os dados num ficheiro binário
  with open("utilizadores.bin", "wb") as ficheiro:
      for utilizador in utilizadores:
          ficheiro.write(struct.pack('20s i', utilizador[0].encode(), utilizador[1]))
      
    

Passo 3: Ler os Dados de um Ficheiro Binário

      
  # Ler e exibir os dados do ficheiro binário
  with open("utilizadores.bin", "rb") as ficheiro:
      while chunk := ficheiro.read(24):  # 20 bytes para o nome + 4 bytes para a idade
          nome, idade = struct.unpack('20s i', chunk)
          print(f"Nome: {nome.decode().strip()}, Idade: {idade}")
      
    
<< 8.3.1: Resolução com Fich... Índice 9: Manipulação de Erros e... >>