JanelasMacSoftwareConfiguraçõesSegurançaProdutividadeLinuxAndroidDesempenhoConfiguraçãoApple Tudo

Como ler e escrever arquivos em Python

Editado 3 Semanas atrás por ExtremeHow Equipe Editorial

PythonManipulação de arquivosOperações de E/SJanelasMacLinuxFundamentos de programaçãoIntermediárioGestão de DadosScripting

Como ler e escrever arquivos em Python

Tradução atualizada 3 Semanas atrás

Aprender a ler e escrever arquivos em Python é uma habilidade essencial para qualquer programador. Os arquivos contêm dados que podem ser lidos por um programa ou modificados e salvos para uso posterior. Em Python, o manuseio de arquivos é simples e intuitivo. Este guia irá introduzir você aos conceitos básicos e avançados de manuseio de arquivos em Python usando a função interna open. Vamos explorar diferentes modos de arquivo, tratamento de erros e vários cenários comuns de uso.

Entendendo as operações de arquivo

Antes de entrar nas operações de arquivo em Python, é importante entender o que significa ler e escrever um arquivo.

Abrindo um arquivo

Para ler ou escrever um arquivo em Python, você deve primeiro abri-lo. Python possui a função interna open. Essa função abre um arquivo, retornando um objeto de arquivo. A sintaxe da função open é:

file_object = open(filename, mode)

Aqui, filename é o nome do arquivo a ser aberto e mode indica o propósito pelo qual o arquivo está sendo aberto.

Modo de arquivo

Os modos de arquivo determinam como o arquivo será usado uma vez que esteja aberto. Aqui estão alguns modos de arquivo comuns:

Lendo de um arquivo

Uma vez que um arquivo está aberto no modo apropriado, você pode ler seu conteúdo usando métodos como read(), readline() e readlines().

Usando o método read()

O método read() lê todo o conteúdo do arquivo e o retorna como uma string.

# Abra o arquivo no modo de leitura
file_object = open("example.txt", "r")
# Leia todo o conteúdo
content = file_object.read()
# Imprima o conteúdo
print(content)
# Feche o arquivo
file_object.close()

Usando o método readline()

O método readline() lê uma linha do arquivo e a retorna como uma string.

# Abra o arquivo
file_object = open("example.txt", "r")
# Leia a primeira linha
first_line = file_object.readline()
# Imprima a primeira linha
print(first_line)
# Feche o arquivo
file_object.close()

Usando o método readlines()

Este método lê todas as linhas do arquivo e as retorna como uma lista de strings. Cada string representa uma linha no arquivo.

# Abra o arquivo
file_object = open("example.txt", "r")
# Leia todas as linhas
lines = file_object.readlines()
# Imprima todas as linhas
for line in lines:
    print(line)
# Feche o arquivo
file_object.close()

Escrevendo em um arquivo

Para escrever dados em um arquivo, você deve abri-lo em um dos modos de escrita ('w', 'a', ou 'x'). Os métodos write() e writelines() são usados para escrever dados em um arquivo.

Usando o método write()

O método write() escreve uma única string em um arquivo.

# Abra o arquivo no modo de escrita
file_object = open("example.txt", "w")
# Escreva dados no arquivo
file_object.write("Este é um texto de exemplo.")
# Feche o arquivo
file_object.close()

Usando o método writelines()

O método writelines() escreve uma lista de strings em um arquivo.

# Abra o arquivo no modo de anexação
file_object = open("example.txt", "a")
# Lista de strings
lines = ["Primeira linha\n", "Segunda linha\n", "Terceira linha\n"]
# Escreva as linhas no arquivo
file_object.writelines(lines)
# Feche o arquivo
file_object.close()

Fechando um arquivo

É importante fechar o arquivo após usá-lo. O método close() é usado para esse propósito. Ele libera os recursos usados pelo arquivo.

# Fechando um arquivo corretamente
file_object.close()

Você também pode usar a instrução with para abrir um arquivo. Essa abordagem garante que o arquivo seja fechado automaticamente, mesmo se uma exceção for levantada. Aqui está um exemplo:

with open("example.txt", "r") as file_object:
    content = file_object.read()
    print(content)
# Não é necessário fechar explicitamente o arquivo

Lidando com exceções de arquivo

Ao trabalhar com arquivos, erros podem ocorrer. Lidar com esses erros de forma graciosa melhora a robustez do seu programa. O Python fornece um mecanismo para lidar com tais exceções usando as instruções try e except.

try:
    with open("example.txt", "r") as file_object:
        content = file_object.read()
        print(content)
except FileNotFoundError:
    print("O arquivo não existe.")
except IOError:
    print("Ocorreu um erro ao acessar o arquivo.")

Neste exemplo, se o arquivo não existir ou não puder ser acessado, uma mensagem é exibida e o programa continua a execução sem travar.

Trabalhando com diferentes tipos de arquivo

Com Python, você pode trabalhar com diferentes tipos de arquivo, incluindo arquivos de texto, arquivos binários, e outros. A abordagem pode variar ligeiramente dependendo do tipo de arquivo:

Arquivos binários

Arquivos binários contêm dados em formato binário. Para manipular arquivos binários, abra-os no modo binário adicionando 'b' ao nome do arquivo (por exemplo, 'rb' para modo de leitura binária).

with open("image.jpg", "rb") as file_object:
    content = file_object.read()
    # Processar conteúdo binário

Arquivos CSV

Arquivos CSV (Valores Separados por Vírgulas) são usados para armazenar dados tabulares. Python fornece o módulo csv para manipular arquivos CSV.

import csv
# Lendo CSV
with open("data.csv", "r") as file_object:
    csv_reader = csv.reader(file_object)
    for row in csv_reader:
        print(row)
# Escrevendo em CSV
with open("output.csv", "w", newline='') as file_object:
    csv_writer = csv.writer(file_object)
    csv_writer.writerow(["Cabeçalho1", "Cabeçalho2"])
    csv_writer.writerow(["Valor1", "Valor2"])

Arquivos JSON

JSON (JavaScript Object Notation) é um formato popular para armazenar e trocar dados. O módulo json do Python facilita o manuseio de arquivos JSON.

import json
# Lendo JSON
with open("data.json", "r") as file_object:
    data = json.load(file_object)
    print(data)
# Escrevendo JSON
with open("output.json", "w") as file_object:
    json.dump({"key": "value"}, file_object)

Operações avançadas de arquivo

Busca e recursão

O método seek() altera a posição do objeto de arquivo, permitindo que você vá para diferentes locais no arquivo.

# Usando seek para mudar a posição do arquivo
with open("example.txt", "r") as file_object:
    file_object.seek(5)
    content = file_object.read()
    print(content)

Você também pode usar o objeto de arquivo como um iterador para iterar pelas linhas.

with open("example.txt", "r") as file_object:
    for line in file_object:
        print(line)

Resumo

O manuseio de arquivos em Python é uma habilidade básica que permite aos programadores armazenar, recuperar e manipular dados de forma eficaz. Este guia cobriu os conceitos básicos de leitura e escrita de arquivos, explorou vários modos de arquivo e mostrou como lidar com exceções. Além disso, forneceu métodos para trabalhar com vários tipos de arquivo, como arquivos de texto, binários, CSV e JSON. Com essas ferramentas, você pode gerenciar arquivos de forma eficiente em seu programa Python, garantindo que os dados sejam processados corretamente e com segurança.

Se você encontrar algo errado com o conteúdo do artigo, você pode


Comentários