Como gravar dados em arquivos de texto com Python

Gravar dados em arquivos de texto com Python

Na lição anterior mostramos como abrir um arquivo de texto para leitura com Python. Agora, vamos mostrar os métodos e modos utilizados para que seja possível escrever dentro desses arquivos.

Como escrever em um arquivo

Para escrever texto em um arquivo, ajustamos o modo de abertura do arquivo de acordo e usamos o método write() do objeto file, que recebe como argumento o texto a ser inserido no arquivo.

Sintaxe do método write()

arquivo.write(texto_a_ser_inserido)

Veja o exemplo a seguir, usando o modo w:

with open('arq01.txt', 'w') as arquivo:
    arquivo.write('Texto adicionado à primeira linha.\n')
    arquivo.write('Texto que vai na segunda linha.\n')
with open('arq01.txt') as arquivo:
    print(arq01.read())

Um ponto importante a ser lembrado é de que o método write() não acrescenta o caractere de newline automaticamente, por isso precisamos fornecê-lo junto com o texto (\n).

No exemplo seguinte, escrevemos no arquivo de texto, mas sem utilizar a declaração with. Neste caso, devemos nos lembrar de fechar o arquivo por meio do método close():

# Criando e escrevendo em arquivos de texto (modo 'w').
arquivo = open('arq01.txt','w')
arquivo.write("Bóson Treinamentos\n")
arquivo.write("Criando um arquivo de texto com Python\n")
arquivo.write("Arquivo criado por Fábio dos Reis\n")
arquivo.write("É isso ai pessoal!\n")
arquivo.close()

# Lendo o arquivo criado:
arquivo = open('arq01.txt','r')
for linha in arquivo:
    linha = linha.rstrip()
    print (linha)
arquivo.close()

Acrescentando texto a um arquivo existente

Caso o método write() seja invocado sobre um arquivo que foi aberto pelo método ‘w’, o conteúdo do arquivo será substituído pelo novo conteúdo fornecido ao método, pois o método write() primeiramente trunca o arquivo (apaga todo o soeu conteúdo), e só então permite a gravação de texto novo. Ou seja, ele sobrescreve o conteúdo do arquivo.

Para preservar o conteúdo existente no arquivo, devemos abri-lo usando o modo ‘a’ (append), que permite acrescentar texto novo ao final do arquivo, sem apagar o conteúdo já existente. Veja o exemplo a seguir:

# Acrescentando texto ao arquivo criado, usando o modo de acesso 'a'
print("\n")
texto = input("Digite uma frase para acrescentar ao arquivo:\n")
arquivo = open('arq01.txt','a')
arquivo.write(texto + "\n")
print("Operação concluída no arquivo " + arquivo.name + " usando o modo de acesso " + arquivo.mode)
arquivo.close()

print("\nTexto alterado:")
arquivo = open('arq01.txt','r')
for linha in arquivo:
    linha = linha.rstrip()
    print (linha)
arquivo.close()

Note que a frase digitada pelo usuário é acrescentada ao final do arquivo, preservando o conteúdo anterior.

Também podemos inserir texto no início do arquivo, usando o modo de acesso combinado r+., como mostra o exemplo a seguir:

# Acrescentando texto ao início do arquivo, usando o modo 'r+'
print("\n")
texto = input("Digite um titulo para acrescentar ao arquivo:\n")
arquivo = open('arq01.txt','r+')
arquivo.seek(0)
arquivo.write(texto + '\n')
arquivo.close()

print("\nTexto alterado:")
arquivo = open('arq01.txt','r')
for linha in arquivo:
    linha = linha.rstrip()
    print (linha)
arquivo.close()

Porém, nesse caso, o texto acrescentado irá substituir caracteres no início do texto, em vez de “empurrar” o texto existente para baixo. Veremos como sanar esse problema em outra lição.

Na próxima lição vamos falar sobre arquivos binários.

Sobre Fábio dos Reis (1223 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

8 Comentários em Como gravar dados em arquivos de texto com Python

  1. Prezado Fabio,
    Tenho assistido as suas aulas e tenho gostado bastante. Um dos interesses iniciais foi sobre Python porque depois de muito tempo sem estudar programação, estou um pouco enferrujado, resolvi retomar esses estudos. Pesquisando sobre arquivos Binários surgiu o seguinte problema para eu resolver mas tive dúvidas. O problema é seguinte: FAÇA UM PROGRAMA QUE PERMITA AO USUÁRIO A MANIPULAÇÃO DE UM ARQUIVO BINÁRIO PARA CRIAÇÃO DE UM PEQUENO CONTROLE DE 50 PEÇAS, UTILIZANDO OS SEGUINTES CAMPOS: CODIGO, PECA, DESCRICAO, QUANTIDADE E PRECO. EM SEGUIDA, O USUÁRIO DEVERÁ SER CAPAZ DE LER O ARQUIVO LISTANDO TODOS AS PECAS, QUANTIDADES E PRECOS, RESPECTIVOS.

  2. LETICIA INGRID // 29/06/2018 em 23:50 // Responder

    Sua explicação é muito boa! Aguardando a aula sobre manipulação de binários! =}

  3. Olá Fábio,
    Excelente explicação! Por favor, como faço para imprimir o resultado dos prints (na tela) em um arquivo txt?

  4. Érick Santos Matos // 05/09/2019 em 23:20 // Responder

    Como faço para adicionar o conteúdo de um dicionário no arquivo .txt e para acessa-lo ainda como dicionário?

  5. Muito Obrigado! A sua explicação me ajudou muito a resolver um exercício.

  6. Erik.zeed // 23/03/2021 em 12:57 // Responder

    Como eu faço para salvar uma conta em um arquivo TXT. Exemplo eu tava calculando uma média e gostaria de salvar essa média em um arquivo.

  7. Como eu faço para salvar uma conta em um arquivo TXT. Exemplo eu tava calculando uma média e gostaria de salvar essa média em um arquivo.

Escreva um comentário

Seu e-mail não será divulgado


*