Python File I/O: Dominando Operações de Arquivo, Leitura, Escrita e Gerenciamento
Python File I/O
Aprenda como abrir, ler, escrever e fechar arquivos em Python com exemplos claros e técnicas de boas práticas.
Vídeo: Leitura e Escrita de Arquivos em Python
Arquivos
Arquivos são locais nomeados em disco que armazenam dados persistentemente. Como RAM é volátil, dependemos de arquivos para manter informações entre execuções de programas.
Ao interagir com arquivo, a sequência típica é: abrir → ler/escrever → fechar.
Abrindo Arquivos em Python
A função built-in open() do Python retorna um objeto arquivo que você pode usar para operações de I/O. A assinatura da função é:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Pontos-chave:
modecontrola a operação:r(leitura),w(escrita, trunca),a(append),x(criação exclusiva).t(texto) é padrão;b(binário) retorna objetosbytes.+permite leitura e escrita simultâneas.- Sempre especifique
encodingao lidar com texto para evitar padrões dependentes de plataforma (ex.:cp1252no Windows,utf-8no Linux).
| Modo | Descrição |
|---|---|
r | Leitura (padrão) |
w | Escrita; cria novo ou trunca existente |
x | Criação exclusiva; falha se arquivo existe |
a | Append; cria se não existe |
t | Modo texto (padrão) |
b | Modo binário |
+ | Leitura e escrita |
f = open("test.txt") # r/rt
f = open("test.txt", "w") # escrita
f = open("img.bmp", "r+b") # leitura/escrita binária
Como a é um caractere, não equivale ao número 97 a menos que codificado. Defina explicitamente encoding='utf-8' para arquivos de texto.
f = open("test.txt", mode='r', encoding='utf-8')
Fechando Arquivos em Python
Fechar arquivo corretamente libera recursos do sistema. O método close() é direto, mas usar gerenciador de contexto é o padrão mais seguro.
with open("test.txt", encoding='utf-8') as f:
# realizar operações de arquivo
pass
O gerenciador de contexto garante fechamento mesmo se exceção ocorrer. Se abrir arquivo manualmente, envolva em bloco try...finally.
try:
f = open("test.txt", encoding='utf-8')
# operações
finally:
f.close()
Escrevendo em Arquivos em Python
Use modo w, a ou x para escrever. w sobrescreve conteúdo existente; a preserva.
O método write() aceita string (ou bytes para binário) e retorna número de caracteres escritos.
with open("test.txt", "w", encoding='utf-8') as f:
f.write("my first file\n")
f.write("This file\n\n")
f.write("contains three lines\n")
Lembre-se de incluir caracteres de nova linha para separar linhas.
Lendo Arquivos em Python
Abra com modo r. O método read() aceita argumento opcional size; omitindo lê até EOF.
f = open("test.txt", "r", encoding='utf-8')
print(f.read(4)) # 'This'
print(f.read(4)) # ' is '
print(f.read()) # conteúdo restante
f.close()
Mova cursor com seek() e consulte posição com tell():
print(f.tell()) # posição atual
f.seek(0) # voltar ao início
print(f.read()) # ler tudo
Itere sobre linhas eficientemente:
for line in f:
print(line, end='')
Alternativamente, readline() e readlines() fornecem acesso linha por linha.
Métodos de Arquivo Python
Referência concisa para os métodos de arquivo mais comuns em modo texto.
| Método | Descrição |
|---|---|
| close() | Fecha o arquivo. |
| detach() | Desanexa buffer binário subjacente. |
| fileno() | Retorna descritor de arquivo. |
| flush() | Libera buffer de escrita. |
| isatty() | Verifica se stream é interativo. |
| read(n) | Lê até n caracteres; None lê até EOF. |
| readable() | Stream é legível? |
| readline(n=-1) | Lê linha única, até n caracteres. |
| readlines(n=-1) | Retorna lista de linhas, até n caracteres. |
| seek(offset, from_=SEEK_SET) | Move cursor para offset a partir de from_ (início, atual, fim). |
| seekable() | Stream suporta acesso aleatório? |
| tell() | Obtém posição atual do cursor. |
| truncate(size=None) | Redimensiona arquivo para size bytes. |
| writable() | Stream é gravável? |
| write(s) | Escreve string s; retorna número de caracteres escritos. |
| writelines(lines) | Escreve iterável de strings. |
python
- Dominando Entrada e Saída (I/O) em C: scanf() e printf() Explicados
- Dominando Tipos de Dados em Python: Guia Prático
- Dominando Operadores em Python: Guia Completo
- Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
- Python File I/O: Dominando Operações de Arquivo, Leitura, Escrita e Gerenciamento
- Verificando Existência de Arquivos e Diretórios em Python – Guia Prático
- Python JSON: Codificação, Decodificação e Manipulação de Arquivos – Guia Prático
- Dominando I/O de Arquivos em C: Criando, Abrindo e Gerenciando Arquivos
- Dominando I/O de Arquivos em C#: Leitura, Escrita e Gerenciamento de Streams
- Python I/O de Arquivos: Dominando Operações de Entrada e Saída