Blog

Postado em em 8 de março de 2023

Arquivos de Texto com Python – [Ler, Editar e Criar]

Nessa aula, vamos te mostrar como trabalhar com arquivos de texto com Python, então vamos ler, editar e criar textos!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

As vezes, é bem útil automatizar esse tipo de procedimento com texto para que possa ter relatórios de entradas ou até mesmo relatórios de atualização de algum processo que esteja fazendo. Por isso, vamos aprender. 

Arquivos de Texto com Python

Métodos de manipulação de arquivos 

A manipulação de arquivos é uma importante tarefa em muitas linguagens de programação. Trata-se de uma forma de tentar extrair informações de um arquivo ou uma fonte externa, o que é um começo para que o programador entenda como tornar sua aplicação mais robusta.

É comum começar a estudar essa questão com arquivos TXT, menores e mais simples. Logo depois, contudo, é interessante evoluir para trabalhar com arquivos, maiores e mais complexos, como CSV. A lógica é muito similar e até alguns métodos são iguais.

Em Python e em outras linguagens, temos três principais métodos: ler, escrever e adicionar.

Vamos começar explicando como eles funcionam de forma mais genérica. Depois partiremos para o código. 

Ler arquivo TXT em Python

Para ler um arquivo TXT em Python, você precisa usar um método de leitura, que pode ser o read. Há mais uma opção, como veremos a seguir, mas a princípio vamos apenas falar da ideia geral.

A leitura de um arquivo consiste em tentar extrair as informações presentes no arquivo para trazer para a memória. Então, com outros métodos, é possível manipular como o programador deseja, seja separar linha por linha, seja separar com base em algum marcador separador, seja pegar cada palavra, etc.

A ideia é extrair as informações e jogar em algum variável ou dispô-las na tela. 

Isso pode ser muito útil em várias aplicações. Uma delas, por exemplo, é para testar modelos de inteligência artificial. Você pode fazer isso para testar sistemas de recomendação ou sistemas de processamento de linguagem natural (PLN).

No caso de aplicações de PLN, o programador pode escrever frases em um arquivo e depois importá-las no Python para facilitar e testar de fato como o modelo reage.

Escrever arquivo TXT em Python

Também é fundamental saber como escrever arquivos TXT em Python. Trata-se de outra importante função na manipulação deles. 

Nesse caso, não é preciso importar nada para a memória ou para a variável, apenas pegar alguma informação que o usuário vai digitar ou que sai como resultado do programa e exportar, salvar no arquivo.

A escrita é como o complemento da leitura, um movimento contrário. 

Também funciona quando se quer escrever em um texto substituindo as informações existentes. 

Adicionar em arquivo TXT em Python

A adição em um texto é a terceira função que vamos discutir aqui nessa parte introdutória. Depois que você entendeu como ler arquivo TXT em Python e como escrever, é fundamental avançar para a adição.

Essa função representa a escrita de informações em um arquivo que já contém algumas informações. Geralmente, se diz que a adição serve para incluir dados no final, dados diferentes que complementam nosso arquivo. 

Ou seja, permite atualizar o documento com novas informações, desde que as anteriores sejam mantidas também. 

Arquivos de Texto com Python

Antes de iniciar é muito importante que você lembre que sempre que abrir um arquivo você tem que fechar ele antes de dar continuidade ao outro código, pois pode ter alguns problemas.

O arquivo pode não salvar corretamente, pode ter alguns problemas na hora da execução do código.

Então a solução para resolver esse problema e acabar não esquecendo de fechar o arquivo é utilizar a estrutura With no Python.

Nós vamos utilizar 3 arquivos de texto que estão disponíveis para download: email.txt, senha.txt e mensagem.txt.

Com esses arquivos nós vamos poder fazer algumas modificações para que você possa aprender como trabalhar com textos no Python!

# read -> para arquivos simples (ex: senhas, tokens, informações únicas)
with open("email.txt", "r") as arquivo:
	email = arquivo.read()
print(email)

with open("senha.txt", "r") as arquivo:
	senha = arquivo.read()
print(senha)

# read lines -> para arquivos maiores
with open("mensagem.txt", "r", econding="utf-8") as arquivo
	texto = arquivo.readlines()

for frase in texto
	if "faturamento" in frase
		print(frase)

Ler arquivo TXT em Python – Read e Readlines

Aqui nós estamos utilizando a estrutura With para abrir arquivo de texto com Python. Veja que dentro dessa estrutura nós temos 2 argumentos.

O primeiro é o nome do arquivo (se estiver na mesma pasta basta colocar apenas o nome, sem o caminho completo), e o segundo é o que vamos fazer com o arquivo.

Utilizando o “r” nós vamos ler o arquivo (R vem de Read, que significa ler em inglês), então vamos conseguir ler e mostrar na tela o conteúdo desse arquivo.

Vamos agora a uma breve explicação desses códigos.

Nos dois primeiros blocos, nós estamos apenas abrindo os arquivos de e-mail e senha, atribuindo o seu conteúdo a uma variável e em seguida mostrando esse conteúdo na tela.

No terceiro bloco, nós temos algumas novidades. A primeira é o uso do encoding =”utf-8” que é para que o Python consiga ler corretamente as informações que possuem acento.

Veja a diferença utilizando com e sem o encoding.

with open("mensagem.txt", "r") as arquivo:
	texto = arquivo.read()
	print(texto)

with open("mensagem.txt", "r", econding="utf-8") as arquivo
	texto = arquivo.read()
	print(texto)
EvTBPT92pyhn13Po4CzKsWwqHvsflb6VltPtrL0nqPolT palZMLLicrI1N8N2mNA2TzqKwf6ojs9 xZW1jCoR Hze81YN2aqDVBlL2UaoBkYwlc1umpwOyyaftx2q8He DxIXNn9EfJ 7bH6TAY9j8

É possível notar que sem essa codificação nós temos problemas com as letras que possuem acento ou caractere especial, então é necessário utilizar essa codificação caso queira ver as informações da forma correta!

Outro ponto diferente que temos nesse bloco em relação aos outros é a utilização do arquivo.read() para arquivo.readlines().

A primeira opção permite com que o usuário leia todo o conteúdo normalmente, mas não permite a separação por linhas.

Essa separação é muito útil quando vamos utilizar a estrutura de repetição for para mostrar na tela apenas a linha que contém a informação “faturamento”.

Dessa forma conseguimos fazer uma verificação linha a linha e trazer o resultado desejado, caso contrário o Python não consegue buscar essa informação de texto e não traz nenhum resultado.

Escrever Arquivos de Texto com Python – Write

Vamos agora para o nosso segundo exemplo utilizando o segundo argumento do With como “w” (que vem de Write, que significa escrever em inglês).

Isso quer dizer que podemos editar arquivo de texto com Python (escrever no arquivo/ substituir seu conteúdo) caso o arquivo já exista.

Agora, caso esse arquivo ainda não exista, o código vai criar um arquivo de texto com Python e então escrever o que foi solicitado.

Isso quer dizer que se não temos o arquivo ele criar, e se já tivermos ele substitui o conteúdo com a nova informação.

# substitui por completo o texto que está escrito
with open("email.txt", "r") as arquivo:
	email = arquivo.read()
print(email)

with open("email.txt", "w") as arquivo:
	arquivo.write("[email protected]")

with open("email.txt", "r") as arquivo
	email = arquivo.read()
	print(email)

Aqui temos primeiramente a leitura do arquivo de e-mail para mostrar o conteúdo dele. Em seguida temos a utilização do modo de escrita, onde alteramos o conteúdo desse arquivo.

E por fim temos mais um código para leitura novamente para verificar o conteúdo do arquivo.

É possível notar que o conteúdo do arquivo foi modificado, então agora temos a nova informação que substituiu a anterior.

Agora você deve estar se perguntando, “Mas então, como eu vou acrescentar uma informação sem apagar a informação anterior??”.

Isso é simples e é o nosso próximo exemplo.

Escrever Arquivos de Texto com Python – Append

Para isso, nós vamos utilizar o “a” como segundo argumento da estrutura with (que vem de Append, que significa acrescentar em inglês).

Então vamos poder adicionar no arquivo a informação desejada sem apagar ou substituir o que já tínhamos nesse arquivo.

# adiciona uma informação ao texto original
with open("senha.txt", "a") as arquivo:
	arquivo.write("\n789456")

Aqui por exemplo estamos adicionando uma segunda senha ao nosso arquivo senha.txt. Então vamos adicionar uma nova senha dentro desse mesmo arquivo.

IMPORTANTE: Veja que antes da senha nós estamos escrevendo o \n que significa que estamos pulando uma linha, ou seja, não vamos escrever logo a frente da última informação. Vamos escrever na linha logo abaixo, assim as informações ficam organizadas e separadas dentro do arquivo.

dVieHbOXM1OkZQKWdNVedepJLGuDVgnRnmiGi8IIjJDHEk nT52FBgRVj 2y6vRIsMYTGRyLfuNyyw5CN5WPywL3kFZt9V71 z0WAwhAArIlKcW

Veja que agora temos duas informações e elas estão em linhas diferentes, isso é muito importante para separar esses dados.

Pois se você não colocar o separador essas informações ficarão juntas e você não vai conseguir identificar qual é uma senha ou outra.

Conclusão – Arquivos de Texto com Python

Nessa aula, nós te mostramos como trabalhar com arquivos de texto com Python.

Agora você já sabe como ler as informações de um arquivo, como substituir as informações no arquivo, como criar um arquivo e já colocar informações dentro dele ou até mesmo adicionar informações em um arquivo já existente.

Com esses conhecimentos você já pode começar a praticar com os arquivos que tem para melhorar ainda mais seus códigos.

Então vai poder utilizar os arquivos em texto dentro dos códigos (utilizando o conteúdo deles) ou até mesmo gravar informações dentro de arquivos para criar um relatório sempre que utilizar seu código.

As possibilidades são diversas, basta praticar e aplicar na sua rotina de programação!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer ter acesso a um Minicurso de Finanças no Excel de forma 100% gratuita? Preencha seu e-mail abaixo!