Executando verificação de segurança...
2

Manipulação de Arquivos em Python: Um Guia Completo

Manipulação de Arquivos em Python: Um Guia Completo

Trabalhar com arquivos é uma tarefa comum em muitas aplicações de software, desde a leitura e escrita de arquivos de texto até a manipulação de dados em formatos específicos como CSV. Python torna a manipulação de arquivos simples e eficiente com seu conjunto de ferramentas e métodos. Neste post, vamos explorar as várias maneiras de trabalhar com arquivos em Python.

Abertura de Arquivos

Para começar a manipular um arquivo, primeiro precisamos abri-lo usando a função open(). Esta função aceita dois argumentos principais: o nome do arquivo e o modo de abertura.

arquivo = open('meu_arquivo.txt', 'r')  # Modo de leitura

Os modos mais comuns são:

  • 'r': Leitura (padrão)
  • 'w': Escrita (cria um novo arquivo ou sobrescreve um existente)
  • 'a': Adicionar (abre um arquivo para anexar dados no final)
  • 'b': Modo binário (adicionado ao modo de leitura/escrita, ex: 'rb' ou 'wb')

Leitura de Arquivos

read()

Lê o conteúdo inteiro do arquivo como uma única string.

with open('meu_arquivo.txt', 'r') as arquivo:
    conteudo = arquivo.read()
    print(conteudo)

readline()

Lê uma linha do arquivo por vez.

with open('meu_arquivo.txt', 'r') as arquivo:
    linha = arquivo.readline()
    while linha:
        print(linha, end='')
        linha = arquivo.readline()

readlines()

Lê todas as linhas do arquivo e retorna uma lista de strings.

with open('meu_arquivo.txt', 'r') as arquivo:
    linhas = arquivo.readlines()
    for linha in linhas:
        print(linha, end='')

Escrita em Arquivos

write()

Escreve uma string no arquivo.

with open('meu_arquivo.txt', 'w') as arquivo:
    arquivo.write("Olá, Mundo!\n")
    arquivo.write("Escrevendo em um arquivo em Python.")

writelines()

Escreve uma lista de strings no arquivo.

linhas = ["Linha 1\n", "Linha 2\n", "Linha 3\n"]
with open('meu_arquivo.txt', 'w') as arquivo:
    arquivo.writelines(linhas)

Anexar Dados a um Arquivo

Para adicionar dados a um arquivo existente sem sobrescrever seu conteúdo, usamos o modo 'a'.

with open('meu_arquivo.txt', 'a') as arquivo:
    arquivo.write("\nAdicionando uma nova linha.")

Manipulação de Arquivos CSV

Python possui uma biblioteca integrada chamada csv para manipulação de arquivos CSV (Comma Separated Values).

Leitura de Arquivos CSV

import csv

with open('dados.csv', 'r') as arquivo:
    leitor = csv.reader(arquivo)
    for linha in leitor:
        print(linha)

Escrita em Arquivos CSV

import csv

dados = [
    ['Nome', 'Idade', 'Cidade'],
    ['Alice', 30, 'São Paulo'],
    ['Bob', 25, 'Rio de Janeiro']
]

with open('dados.csv', 'w', newline='') as arquivo:
    escritor = csv.writer(arquivo)
    escritor.writerows(dados)

Manipulação de Arquivos JSON

Para manipular arquivos JSON (JavaScript Object Notation), Python oferece a biblioteca integrada json.

Leitura de Arquivos JSON

import json

with open('dados.json', 'r') as arquivo:
    dados = json.load(arquivo)
    print(dados)

Escrita em Arquivos JSON

import json

dados = {
    'nome': 'Alice',
    'idade': 30,
    'cidade': 'São Paulo'
}

with open('dados.json', 'w') as arquivo:
    json.dump(dados, arquivo, indent=4)

Fechando Arquivos

Embora o uso do with statement seja a maneira mais segura de trabalhar com arquivos, pois garante que eles serão fechados corretamente, você também pode fechar um arquivo manualmente usando o método close().

arquivo = open('meu_arquivo.txt', 'r')
conteudo = arquivo.read()
arquivo.close()

Conclusão

A manipulação de arquivos em Python é uma habilidade essencial para qualquer desenvolvedor. Este guia cobre os fundamentos da leitura e escrita de arquivos, bem como a manipulação de formatos comuns como CSV e JSON. Com essas técnicas, você estará bem equipado para lidar com tarefas relacionadas a arquivos em seus projetos Python.


Espero que este ajude a esclarecer a manipulação de arquivos em Python!

Carregando publicação patrocinada...
1

Tem um detalhe que pode fazer diferença principalmente ao manipular arquivos grandes.

Métodos como read e readlines carregam todo o conteúdo do arquivo para a memória: o segundo é ainda pior porque primeiro ele cria uma lista com todas as linhas, e só depois o for percorre esta lista. Ou seja, vc itera pelo conteúdo do arquivo duas vezes.

Em arquivos pequenos não faz diferença, mas em arquivos muito grandes, pode acabar gastando mais memória que o necessário.

Neste caso, se vc só precisa manipular uma linha por vez, e depois não precisa mais dela, uma solução melhor é iterar uma linha de cada vez.

E como em Python arquivos são iteráveis, basta um for simples:

with open('meu_arquivo.txt', 'r') as arquivo:
    for linha in arquivo:
        print(linha, end='')

Assim, depois que a linha é lida e usada, logo é descartada, gastando menos memória. Claro que isso vale apenas se os dados não são guardados em algum lugar, pois aí vai ocupar memória do mesmo jeito (mas se isso é uma necessidade, não tem o que fazer).

Novamente, para arquivos pequenos, tanto faz. Mas pode fazer diferença para arquivos maiores.