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:
- Pede ao utilizador para introduzir o nome e a idade de três estudantes.
- Guarda esses dados num ficheiro de texto.
- 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)