Editado 3 Semanas atrás por ExtremeHow Equipe Editorial
PythonManipulação de arquivosOperações de E/SJanelasMacLinuxFundamentos de programaçãoIntermediárioGestão de DadosScripting
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.
Antes de entrar nas operações de arquivo em Python, é importante entender o que significa ler e escrever 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.
Os modos de arquivo determinam como o arquivo será usado uma vez que esteja aberto. Aqui estão alguns modos de arquivo comuns:
'r'
: O modo de leitura é o modo padrão. Ele abre o arquivo apenas para leitura.'w'
: O modo de escrita abre o arquivo para escrita. Se o arquivo não existir, cria um novo arquivo. Se o arquivo já existir, ele o trunca.'a'
: O modo de anexação abre o arquivo apenas para escrita, mas não o trunca. Os dados são anexados ao final.'b'
: O modo binário é usado quando o arquivo está em formato binário, o que é útil para arquivos como imagens.'t'
: O modo de texto é usado para arquivos de texto e é o modo padrão.'x'
: Modo de criação exclusiva. Isso permite criar um novo arquivo e falha se o arquivo já existir.'+'
: Este modo permite ler e escrever no 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()
.
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()
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()
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()
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.
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()
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()
É 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
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.
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 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 (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"])
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)
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)
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