Utilização de Funções para Operações com Arquivos em Python

A codificação de caracteres refere-se à conversão entre bytes e texto. Diferentes sistemas usam codificações variadsa, como ASCII para inglês ou GBK para chinês, o que pode causar incompatibilidades. O Unicode surgiu para unificar essas representações, e o UTF-8 é uma codificação eficiente baseada nele, compatível com ASCII e adequada para armazenamento em disco.

Diferenças de Codificação entre Python 2 e Python 3

No Python 2, strings são armazenadas com a codificação especificada no arquivo. No Python 3, strings internas usam Unicode por padrão, melhroando a compatibilidade internacional. Ao trabalhar com arquivos, é crucial usar a codificação correta durante leitura e escrita.

Modos de Abertura de Arquivos

Arquivos podem ser abertos em três modos principais: r (somente leitura), w (escrita, apaga conteúdo existente) e a (anexar). Esses modos podem ser combinados com especificadores de tipo: t para texto (padrão) e b para binário.

O gerenciamento de contexto com with garante o fechamento automático do arquivo após o uso.

Técnicas para Modificar Conteúdo de Arquivos

Modificar um arquivo no disco envolve geralmente criar uma cópia temporária. Duas abordagens comuns são:

Abordagem por Carregamento Completo

Todo o conteúdo é carregado na memória, alterado e salvo em um novo arquivo. Isso é eficiente para arquivos pequenos, mas pode consumir muita memória.

import os

with open('dados.txt', 'r') as arquivo_origem, \
        open('temporario.txt', 'w') as arquivo_temp:
    conteudo = arquivo_origem.read()
    conteudo_modificado = conteudo.replace('valor_antigo', 'valor_novo')
    arquivo_temp.write(conteudo_modificado)

os.remove('dados.txt')
os.rename('temporario.txt', 'dados.txt')

Abordagem por Linha

O arquivo é lido linha a linha, permitindo modificações progressivas e uso menor de memória.

import os

with open('dados.txt', 'r') as arquivo_origem, \
        open('temporario.txt', 'w') as arquivo_temp:
    for linha in arquivo_origem:
        linha_corrigida = linha.replace('erro', 'correcao')
        arquivo_temp.write(linha_corrigida)

os.remove('dados.txt')
os.rename('temporario.txt', 'dados.txt')

Definição de Funções em Python

Funções são blocos de código reutilizáveis. Elas podem ser definidas de três maneiras:

Função sem Parâmetros

Usada quando nenhuma entrada externa é necessária.

def exibir_mensagem():
    print("Olá, usuário!")

exibir_mensagem()

Função com Parâmetros

Recebe dados externos para processamento.

def calcular_soma(a, b):
    resultado = a + b
    return resultado

total = calcular_soma(5, 3)
print(total)  # Saída: 8

Função Vazia (Stub)

Placeholder para implementação futura.

def processar_dados():
    pass  # Implementação pendente

Tags: Python manipulação de arquivos Codificação de Caracteres Python 2 Python 3

Publicado em 7-19 18:58