8.1: Trabalhar com Ficheiros de Texto

Na tua próxima tarefa na PyTalento, vais aprender a manipular ficheiros de texto. Guardar dados em ficheiros é importante para que as informações fiquem armazenadas de forma persistente e possam ser recuperadas mais tarde. Neste subcapítulo, vais aprender a abrir, ler e escrever em ficheiros de texto usando Python.

Objetivos

  • Compreender como abrir e fechar ficheiros de texto em Python.
  • Aprender a ler e escrever dados em ficheiros de texto.
  • Explorar métodos úteis para manipular ficheiros de texto.

Abrir e Fechar Ficheiros de Texto

Para manipular ficheiros em Python, utilizamos a função open(), que abre um ficheiro e devolve um objeto de ficheiro. Podes abrir o ficheiro em diferentes modos, como leitura (r), escrita (w), ou acrescentar (a), dependendo do que queres fazer.

Exemplo de Abrir e Fechar um Ficheiro:

      
  # Abrir um ficheiro de texto para leitura
  ficheiro = open("dados.txt", "r")

  # Fechar o ficheiro
  ficheiro.close()
      
    

É importante fechar o ficheiro após a sua utilização para libertar os recursos do sistema. Podes também usar o comando with, que fecha automaticamente o ficheiro quando o bloco de código termina.

Exemplo com with:

      
  # Usar with para abrir e fechar automaticamente um ficheiro
  with open("dados.txt", "r") as ficheiro:
      conteudo = ficheiro.read()

  # Não é necessário ficheiro.close() com o bloco with
      
    

Ler Ficheiros de Texto

Podes usar diferentes métodos para ler o conteúdo de um ficheiro de texto, dependendo do que precisas:

  • read(): Lê o ficheiro inteiro como uma única string.
  • readline(): Lê uma linha de cada vez.
  • readlines(): Lê todas as linhas do ficheiro e devolve uma lista de strings.

Exemplo de Leitura de um Ficheiro de Texto:

      
  # Ler todo o conteúdo do ficheiro
  with open("dados.txt", "r") as ficheiro:
      conteudo = ficheiro.read()
      print(conteudo)

  # Ler o ficheiro linha por linha
  with open("dados.txt", "r") as ficheiro:
      for linha in ficheiro:
          print(linha.strip())
      
    

No primeiro exemplo, o ficheiro inteiro é lido e impresso de uma vez. No segundo exemplo, usamos um ciclo for para ler e imprimir o ficheiro linha por linha.

Escrever em Ficheiros de Texto

Para escrever em ficheiros, podes abrir o ficheiro em modo de escrita (w) ou acrescentar (a). O modo w apaga o conteúdo existente no ficheiro antes de escrever, enquanto o modo a adiciona novo conteúdo ao final do ficheiro.

Exemplo de Escrita num Ficheiro de Texto:

      
  # Escrever dados num ficheiro
  with open("dados.txt", "w") as ficheiro:
      ficheiro.write("Nome: Ana\n")
      ficheiro.write("Idade: 25\n")

  # Acrescentar dados ao final de um ficheiro existente
  with open("dados.txt", "a") as ficheiro:
      ficheiro.write("Nome: Carlos\n")
      ficheiro.write("Idade: 30\n")
      
    

O primeiro exemplo substitui o conteúdo do ficheiro dados.txt pelos novos dados. No segundo exemplo, o conteúdo é acrescentado ao final do ficheiro.

Exercício Prático

A empresa PyTalento pediu-te que desenvolvas um programa que guarde dados sobre estudantes num ficheiro de texto e que os leia posteriormente. O programa deve seguir os seguintes passos:

Requisitos:

  1. Pede ao utilizador para introduzir o nome e a idade de três estudantes.
  2. Guarda esses dados num ficheiro de texto.
  3. Lê o conteúdo do ficheiro e imprime-o no ecrã.

Exemplo de Código:

      
  # Escrever dados sobre estudantes num ficheiro de texto
  with open("estudantes.txt", "w") as ficheiro:
      for i in range(3):
          nome = input("Introduz o nome do estudante: ")
          idade = input("Introduz a idade do estudante: ")
          ficheiro.write(f"Nome: {nome}\n")
          ficheiro.write(f"Idade: {idade}\n")

  # Ler e imprimir os dados guardados
  with open("estudantes.txt", "r") as ficheiro:
      conteudo = ficheiro.read()
      print("Conteúdo do ficheiro:\n", conteudo)
      
    
<< 7: Estruturas de Dados Av... Índice 8.2: Trabalhar com Fichei... >>