Escrever dados em ficheiros
Tip
Consulte a guia Texto e imagens para obter mais detalhes!
Escrever num ficheiro permite que o seu programa guarde resultados, mantenha registos ou persista dados entre execuções. Python oferece dois modos principais para colocar dados num ficheiro: escrever e acrescentar.
Escrever num ficheiro com "w"
Abrir um ficheiro em modo de escrita ("w") cria um novo ficheiro — ou sobrescreve completamente qualquer ficheiro existente com o mesmo nome. Use o .write() método para adicionar texto:
with open("greeting.txt", "w") as file:
file.write("Hello, world!\n")
file.write("Welcome to Python.\n")
Warning
O modo de escrita apaga o ficheiro no momento em que é aberto. Só usa "w" quando tiveres a certeza de que queres substituir o conteúdo do ficheiro.
Repare em \n no final de cada cadeia. Ao contrário de print(), .write() não adiciona uma nova linha para ti.
Anexar a um ficheiro com "a"
Abrir um ficheiro em modo de acrescento ("a") adiciona conteúdo ao final do ficheiro, mantendo tudo o que já lá se encontra. Se o ficheiro ainda não existir, o Python cria-o.
with open("log.txt", "a") as file:
file.write("New entry added.\n")
O modo Append é uma boa opção para ficheiros de log, notas e qualquer dado que queiras acumular ao longo do tempo.
Escrever várias linhas
Para escrever uma lista de cadeias de uma só vez, use .writelines(). Lembra-te apenas que não adiciona novas linhas — tens de as incluir tu mesmo:
tasks = ["Buy groceries\n", "Walk the dog\n", "Finish homework\n"]
with open("tasks.txt", "w") as file:
file.writelines(tasks)
Escolher entre escrever e acrescentar
Usa "w" quando... |
Usa "a" quando... |
|---|---|
| Queres começar de novo cada vez | Queres manter o conteúdo existente |
| Está a guardar o resultado final de um processo | Estás a registar novos eventos ou entradas |
| A sobrescência é intencional | A preservação da história é importante |