Módulo 15 - Arquivos de texto
Criando e escrevendo arquivos com open e write
10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Criar um arquivo de texto por código com open no modo w.
- Escrever conteúdo com o método write e fechar com close.
- Entender que o modo w apaga o arquivo existente e quando usar o modo a.
- Pular linha dentro do arquivo usando o caractere de nova linha.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Criando e escrevendo arquivos com open e write.
Os objetivos desta aula. Criar um arquivo de texto por código com open no modo w. Escrever conteúdo com o método write e fechar com close. Entender que o modo w apaga o arquivo existente e quando usar o modo a. Pular linha dentro do arquivo usando o caractere de nova linha.
Veja o essencial, parte por parte.
Abrir, escrever, fechar. open(nome, modo) abre um arquivo; o modo w cria o arquivo para escrita e o método write grava o texto.
A pegadinha do w e o modo a. Abrir com "w" um arquivo que já tinha conteúdo importante: o conteúdo é apagado no ato da abertura.
Pulando linha dentro do arquivo. Antes de abrir com w, pergunte-se: eu quero mesmo apagar o que esse arquivo tem?
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Abrir, escrever, fechar
Trabalhar com arquivo em Python segue um ritual de três passos, sempre na mesma ordem: abrir, usar, fechar. Quem abre é a função open, que recebe dois textos: o nome do arquivo e o modo, uma letra que declara a sua intenção. Para criar um arquivo e escrever nele, o modo é "w", de write. O open devolve um objeto arquivo, que você guarda numa variável para chamar os métodos dele. Veja o ritual completo criando o seu primeiro arquivo.
arquivo = open("recado.txt", "w")
arquivo.write("Meu primeiro arquivo criado por código!")
arquivo.close()Abrir no modo w, escrever com write, fechar com close. Rode e um recado.txt aparece na pasta do script.
Rode essas três linhas no seu computador e abra a pasta do script: o recado.txt está lá, e o Bloco de Notas mostra a frase que o seu código escreveu. Se o arquivo não existia, o modo w cria; nenhum passo extra é necessário. O close no final avisa o sistema que você terminou, garantindo que o conteúdo seja de fato gravado no disco. Esquecer o close é um problema real, e a aula 4 apresenta a solução definitiva para ele. Por enquanto, trate o close como parte obrigatória do ritual.
A pegadinha do w e o modo a
Agora a parte que precisa ficar tatuada: o modo "w" não pergunta nada. Se o arquivo já existe e tem conteúdo, o simples ato de abrir com "w" apaga tudo, na hora, antes mesmo do primeiro write. Não aparece aviso, não existe lixeira, não tem desfazer. Rode duas vezes um script que abre o mesmo arquivo em "w" e a segunda execução destrói o que a primeira gravou. Todo programador já perdeu dado assim uma vez; a meta desta aula é que com você seja em arquivo de teste.
Para acrescentar conteúdo preservando o que existe, o modo certo é "a", de append, que significa anexar. Aberto em "a", o arquivo mantém tudo o que tinha e o write grava a partir do fim. Se o arquivo não existir, o "a" também cria, igual ao "w". É o modo perfeito para diários, históricos e listas que crescem, como a lista de tarefas da prática deste módulo.
# Rode este script 3 vezes e abra o diario.txt: as 3 linhas estarão lá.
arquivo = open("diario.txt", "a")
arquivo.write("Mais um dia de estudo concluído.\n")
arquivo.close()O modo a preserva o conteúdo e escreve no fim. Com w, cada execução apagaria a anterior.
| Modo | Se o arquivo existe | Se não existe | Use quando |
|---|---|---|---|
| "w" | APAGA tudo e escreve do zero | Cria o arquivo | Quiser recomeçar o arquivo |
| "a" | Preserva e escreve no fim | Cria o arquivo | Quiser acrescentar (histórico, lista) |
| "r" | Abre só para leitura | Dá erro FileNotFoundError | Quiser ler (aula 3) |
Os três modos que este curso usa. A letra errada é a diferença entre acrescentar e destruir.
Pulando linha dentro do arquivo
Uma surpresa espera quem chama write várias vezes seguidas: diferente do print, o write não pula linha sozinho. Três writes seguidos produzem uma linha única, com os textos grudados. Para quebrar a linha, você mesmo escreve o caractere de nova linha, a barra invertida seguida de n, no fim de cada texto. Você já conhece esse caractere do módulo 12, sobre textos; aqui ele vira ferramenta de todo dia.
arquivo = open("compras.txt", "w")
arquivo.write("Arroz\n")
arquivo.write("Feijão\n")
arquivo.write("Café\n")
arquivo.close()
# Conteúdo do compras.txt:
# Arroz
# Feijão
# CaféCada write termina com o caractere de nova linha, e cada item ganha a própria linha no arquivo.
Teste as duas versões no seu computador: com e sem o caractere no fim de cada write. Abra o compras.txt no Bloco de Notas nas duas situações e compare. Essa diferença visual fixa o conceito melhor que qualquer explicação. E repare no padrão que está nascendo: uma informação por linha. É assim que a aula 3 vai ler o arquivo de volta, linha por linha, e é assim que a lista de tarefas da prática vai funcionar.
Teste rápido
Um arquivo notas.txt já tem 10 linhas. O que acontece ao executar open("notas.txt", "w")?
Perguntas frequentes
- O que acontece se eu usar write com um número em vez de texto?
- Dá TypeError: o write só aceita texto. Se quiser gravar um número, converta antes com str, por exemplo arquivo.write(str(idade)). É o caminho inverso da conversão que você aprendeu no módulo 5, quando o int transformava o texto do input em número.
- O modo w apaga o arquivo mesmo que eu não chame write nenhum?
- Apaga. O esvaziamento acontece no ato da abertura, não na escrita. Abrir em w e fechar em seguida, sem escrever nada, deixa o arquivo existente com zero bytes. Por isso a decisão entre w e a precisa vir antes do open.
- Posso escrever várias linhas com um único write?
- Pode: basta colocar o caractere de nova linha no meio do texto, como em arquivo.write("linha 1\nlinha 2\n"). Funciona igual a dois writes separados. Para quem está começando, um write por linha costuma deixar o código mais fácil de ler.
- Onde o arquivo é criado se eu passar só o nome, sem pasta?
- Na pasta de trabalho do programa, que em geral é a pasta do seu script. Passando só "recado.txt", o arquivo nasce ao lado do .py. A aula 5 mostra como apontar para outra pasta usando um caminho completo.
- Por que preciso do close se o programa vai fechar de qualquer jeito?
- Porque a escrita pode ficar numa área de espera do sistema, e o close garante que tudo seja gravado no disco de verdade. Confiar no fim do programa funciona às vezes e falha nas piores horas. A aula 4 apresenta o with, que fecha sozinho e elimina esse risco de vez.
- Existe algum jeito de desfazer um w acidental?
- Na prática, não: o conteúdo apagado pelo modo w não vai para a lixeira. Por isso a prevenção importa tanto. Enquanto estiver aprendendo, treine em arquivos de teste criados para isso, e adote a pergunta de segurança: este open com w vai apagar algo que me importa?
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.