Como escrever em arquivos utilizando Python

Cansado de programar?

Conheça a melhor e mais completa formação de Python e Django e sinta-se um programador verdadeiramente competente. Além de Python e Django, você também vai aprender Banco de Dados, SQL, HTML, CSS, Javascript, Bootstrap e muito mais!

Quero aprender Python e Django de Verdade! Quero aprender!
Suporte

Tire suas dúvidas diretamente com o professor

Projetos práticos

Projetos práticos voltados para o mercado de trabalho

Prática profissional

Formação moderna com foco na prática profissional

Download do Artigo

✅ Artigo atualizado em Setembro 2026 Os exemplos agora usam with open(..., encoding="utf-8"), que fecha o arquivo automaticamente e grava os acentos do mesmo jeito em qualquer sistema. Incluímos também o tratamento do FileExistsError no modo “x”. Exemplos testados no Python 3.10 e 3.13.

Salve salve Pythonista!

Neste artigo, vamos aprender como escrever em arquivos utilizando o Python. Se ainda não viu como abrir e ler arquivos, confira antes o post sobre como manipular arquivos com Python.

Escrever em arquivos é uma tarefa muito comum no desenvolvimento de software, pois permite armazenar dados persistentes que podem ser utilizados posteriormente ou compartilhados com outros programas.

Através da escrita em arquivos, podemos criar logs, salvar configurações e resultados de processamentos, entre outras possibilidades.

Antes de começarmos a escrever em arquivos, é importante destacar que existem diferentes modos de abrir um arquivo para escrita em Python. Vamos abordar os três principais modos neste artigo:

  1. Modo “w”: este modo abre um arquivo para escrita e apaga o conteúdo pré-existente, caso o arquivo já exista. Caso o arquivo não exista, um novo arquivo será criado.

  2. Modo “a”: este modo abre um arquivo para escrita e mantém o conteúdo pré-existente, caso o arquivo já exista. Caso o arquivo não exista, um novo arquivo será criado.

  3. Modo “x”: este modo abre um arquivo para escrita, mas só funciona no caso de o arquivo não existir. Caso o arquivo já exista, um erro será lançado.

Vamos iniciar aprendendo a utilizar cada um dos modos para escrever em arquivos.

Vá Direto ao Assunto…

Escrevendo em um arquivo no modo “w”

Vamos começar com o modo “w”. Para abrir um arquivo para escrita utilizando este modo, utilizamos a função open passando como primeiro argumento o nome do arquivo, como segundo argumento a string "w" e, no parâmetro encoding, a codificação do texto ("utf-8").

Em seguida, dentro de um bloco with, utilizamos o método write para escrever no arquivo.

Este método recebe como argumento a string que desejamos escrever:

1
2
with open("arquivo.txt", "w", encoding="utf-8") as arquivo:
    arquivo.write("Hello World!")

Ao sair do bloco with, o arquivo é fechado automaticamente, mesmo que aconteça algum erro no meio do caminho. Fechar o arquivo é importante porque garante que todas as operações de escrita sejam concluídas e gravadas no disco.

Para comparação, este é o jeito manual, sem with, em que você mesmo precisa chamar o método close:

1
2
3
arquivo = open("arquivo.txt", "w", encoding="utf-8")
arquivo.write("Hello World!")
arquivo.close()

Funciona, mas se uma exceção acontecer antes do close(), o arquivo fica aberto e parte do conteúdo pode não ser gravada. Por isso, nos próximos exemplos usaremos sempre o with.

E por que o encoding="utf-8"? Sem ele, o Python usa a codificação padrão do sistema operacional, que no Windows em português costuma ser cp1252. Aí um arquivo com acentos gravado no Windows pode aparecer com caracteres estranhos (ou gerar UnicodeDecodeError) quando lido em outro sistema. Informar o encoding deixa o resultado igual em qualquer máquina - veja mais detalhes no post sobre como manipular arquivos com Python.

Está curtindo esse conteúdo? :thumbsup:

Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?

Sua assinatura não pôde ser validada.
Você fez sua assinatura com sucesso.

Assine as PyDicas e receba 30 dias do melhor conteúdo Python na sua Caixa de Entrada: direto e sem enrolação!

Escrevendo em um arquivo no modo “a”

Vamos agora aprender como escrever em um arquivo no modo “a”.

A título de curiosidade, “a” vem do Inglês append, que significa anexar, juntar, acrescentar.

Este modo é útil para adicionar conteúdo ao final de um arquivo existente, sem apagar o conteúdo pré-existente.

Da mesma forma que vimos para o modo “w”, utilizamos a função open com o modo "a" para abrir um arquivo para escrita no modo “a”.

Em seguida, escrevemos no arquivo utilizando o método write. O with cuida de fechar o arquivo no final.

1
2
with open("arquivo.txt", "a", encoding="utf-8") as arquivo:
    arquivo.write(" Adicionando conteúdo ao final do arquivo!")

Desta forma, o conteúdo será adicionado no final do arquivo, mantendo o conteúdo existente. Partindo do arquivo criado no exemplo do modo “w”, o arquivo.txt fica assim:

1
Hello World! Adicionando conteúdo ao final do arquivo!

:bulb: Estou desenvolvendo o Ebookr.ai, uma plataforma que transforma suas ideias em ebooks profissionais usando IA - com geração de capa, infográficos e exportação em PDF. Te convido a conhecer!

Escrevendo em um arquivo no modo “x”

No modo “x”, podemos abrir um arquivo para escrita, mas apenas se o arquivo não existir. Caso o arquivo já exista, um erro será lançado.

Para abrir um arquivo no modo “x”, utilizamos a função open com o modo "x".

Em seguida, escrevemos no arquivo utilizando o método write, e o with fecha o arquivo ao final.

1
2
with open("relatorio.txt", "x", encoding="utf-8") as arquivo:
    arquivo.write("Conteúdo do arquivo criado com sucesso!")

Caso o arquivo já exista, um erro do tipo FileExistsError será lançado. Rodando o mesmo código uma segunda vez, temos:

1
FileExistsError: [Errno 17] File exists: 'relatorio.txt'

Você pode capturar esse erro com um bloco try/except:

1
2
3
4
5
try:
    with open("relatorio.txt", "x", encoding="utf-8") as arquivo:
        arquivo.write("Conteúdo do arquivo criado com sucesso!")
except FileExistsError:
    print("O arquivo relatorio.txt já existe - nada foi sobrescrito.")

Saída (quando o arquivo já existe):

1
O arquivo relatorio.txt já existe - nada foi sobrescrito.

Cada modo de abertura de arquivo evita um tipo de erro diferente - e aprender esses detalhes na prática, com projetos guiados, é o que você faz na Jornada Python:

Escrevendo múltiplas linhas em um arquivo

Até agora, vimos como escrever uma única linha em um arquivo utilizando o método write.

Porém, é comum precisarmos escrever múltiplas linhas de texto em um arquivo.

Uma forma de fazer isso é utilizando o caractere de quebra de linha "\n".

Podemos adicionar o caractere de quebra de linha em uma string, para separar as linhas no arquivo.

1
2
3
4
with open("arquivo.txt", "w", encoding="utf-8") as arquivo:
    arquivo.write("Primeira linha\n")
    arquivo.write("Segunda linha\n")
    arquivo.write("Terceira linha\n")

Neste exemplo, cada chamada ao método write adiciona uma nova linha ao arquivo, separando as linhas com o caractere de quebra de linha "\n".

Ao abrir este arquivo, o seguinte conteúdo estaria disponível:

1
2
3
Primeira linha
Segunda linha
Terceira linha

Conclusão

Neste artigo, aprendemos como escrever em arquivos utilizando a linguagem de programação Python.

Vimos os três principais modos para abertura de arquivos para escrita: “w”, “a” e “x”.

Além disso, vimos como escrever uma única linha e múltiplas linhas em um arquivo, sempre com with (que fecha o arquivo sozinho) e encoding="utf-8" (para os acentos funcionarem em qualquer sistema). Para formatos estruturados, veja também como manipular arquivos CSV e manipular JSON no Python.

A escrita em arquivos é uma habilidade essencial no desenvolvimento de software, permitindo o armazenamento de dados persistentes e a criação de logs e registros para facilitar a análise e o compartilhamento de informações entre diferentes partes de um programa.

Com os conhecimentos adquiridos neste artigo, você estará apto a utilizar a escrita em arquivos em suas aplicações Python, melhorando a qualidade e a funcionalidade de seus projetos.

Quer praticar manipulação de arquivos e o resto da base de Python construindo projetos guiados? Conheça a Jornada Python, nosso curso completo de Python.

Nos vemos na próxima, Pythonista! :wave:

Começe agora sua Jornada na Programação!

Não deixe para amanhã o sucesso que você pode começar a construir hoje!

#newsletter Olá :wave: Curtiu o artigo? Então faça parte da nossa Newsletter! Privacidade Não se preocupe, respeitamos sua privacidade. Você pode se descadastrar a qualquer momento.