Manipulando arquivos com Python

É de grande importância para qualquer desenvolvedor saber manipular arquivos, seja para criar backups, consumir uma lista de alguma planilha ou qualquer motivo que seja. Por isso, a maioria das linguagens de programação possuem meios para essa manipulação.

No Python não é diferente e a manipulação de arquivos é mais simples do que você possa imaginar. Por isso, veremos neste artigo como realizar as principais operações com arquivos utilizando o Python.

Criando e abrindo arquivos

Para criar arquivos (e, consequentemente, abrí-los), utilizamos o método open(). Este método irá abrir o arquivo que passarmos como parâmetro com um determinado modo de uso (que também será passado como parâmetro).

Há diversos modos de uso, como podemos ver na imagem abaixo:

Estes modos são passados como segundo parâmetro do método open. Ou seja, se quisermos abrir um arquivo em modo de escrita, utilizamos a seguinte sintaxe:

arquivo = open("contatos.txt", "a")

Passamos o nome do arquivo e sua extensão, além do modo que queremos utilizar o arquivo. Este modo pode ser alterado conforme as opções da imagem anterior.

Sendo assim, ao executar o código acima, o arquivo contatos.txt será aberto em modo escrita (caso ele não exista, um novo arquivo será criado):

Escrevendo dados em arquivos

Agora que já sabemos como criar arquivos e seus diferentes modos de uso, podemos realizar as primeiras manipulações. Neste tópico, veremos como escrever dados e salvar em arquivo utilizando o Python.

Para isso, a linguagem fornece dois métodos. O primeiro é o método write() que recebe uma string como parâmetro e a insere no arquivo:

arquivo = open("contatos.txt", "a")
arquivo.write("Olá, mundo!")

Com a execução do código acima, a string Olá, mundo! será inserida no arquivo texto.txt:

O segundo método é o writelines() que recebe um objeto iterável (seja uma lista, uma tupla, um dicionário, etc). Com este método, várias linhas poderão ser inseridas no arquivo, diferente do método write() que só recebe uma string por vez:

arquivo = open("texto.txt", "a")

frases = list()
frases.append("TreinaWeb \n")
frases.append("Python \n")
frases.append("Arquivos \n")
frases.append("Django \n")

arquivo.writelines(frases)

Como a lista é um objeto iterável, podemos passá-la como parâmetro do método writelines(). Utilizamos, também, o \n para saltar a linha ao escrevê-la no arquivo. Com isso, o resultado será o seguinte:

Desenvolvedor Python Júnior
Formação: Desenvolvedor Python Júnior
Aprenda os principais conceitos do Python (uso de variáveis, estruturas condicionais e estruturas de decisão), como trabalhar com orientação à objetos (métodos, construtores, destrutores, classes, herança, polimorfismo e duck-typing) e estruturas de dados (Listas, Filas, Pilhas, Árvores Binárias, Dicionários, Conjuntos, Tabelas de Espalhamento e Mapas).
CONHEÇA A FORMAÇÃO

Lendo dados de arquivos

Além de escrever dados em arquivos, precisamos, também, saber ler os dados que os arquivos possuem. Para isso, existem dois métodos, o primeiro é o readline() que irá ler uma quantidade N de caracteres da primeira linha passadas como parâmetro:

arquivo = open("texto.txt", "r")

print(arquivo.readline(3))

A execução acima retornará os três primeiros caracteres da primeira linha do arquivo:


O segundo método disponível é o readlines(). Este método irá retornar todas as linhas do arquivo:

arquivo = open("texto.txt", "r")

print(arquivo.readlines())

Considerações finais

Saber trabalhar com arquivos é essencial para qualquer desenvolvedor. É certo que em sua vida como desenvolvedor, em algum momento você terá que lidar com esta situação.

Como vimos neste artigo, a manipulação de arquivos com Python é uma tarefa bem simples, porém de grande importância.

Deixe seu comentário

Professor na TreinaWeb e graduado em Sistemas de Informação pelo Instituto Federal da Bahia. Apaixonado por desenvolvimento web, desktop e mobile desde os 12 anos de idade. Já utilizou todos os sistemas operacionais possíveis, mas hoje se contenta com o OSX instalado em seu desktop. Quando não está trabalhando, é IGL e Awper do time de CS:GO da Treinaweb. Até passou em uma peneira do Cruzeiro, mas preferiu estudar Python.

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200