7 maneiras úteis de manipular um arquivo de texto com Python

por Nada Em Troca
10 minutos de leitura
7 maneiras úteis de manipular um arquivo de texto com Python

Você trabalha com muitos arquivos todos os dias? Grande e pequeno? Desarrumado e limpo? Não importa o que sua tarefa exija, o Python facilita muito o trabalho com arquivos. Com um pouco de codificação, você pode economizar horas de trabalho e sanidade. Vamos explorar a magia da manipulação de arquivos do Python.

Lendo um arquivo de texto

Ao trabalhar com logs, arquivos de configuração, conjuntos de dados ou qualquer formato baseado em texto, a primeira habilidade necessária é a capacidade de ler um arquivo com eficiência. Python torna isso muito simples com o recurso integrado open() função e alguns métodos de leitura úteis. Embora a função open() seja o gateway padrão, a maneira “Pythônica” de lidar com arquivos é usando um gerenciador de contexto (o with declaração).

with open("server.log", "r") as f:     content = f.read()     print(content)
Um exemplo de leitura do conteúdo do arquivo usando código Python.

Esta é a abordagem “apenas me dê tudo”. Se o arquivo for pequeno ou moderado, é perfeito. Python carrega tudo na memória como uma única string. Usando with garante que o Python feche o arquivo para você. Ele cuida da configuração e desmontagem do recurso de arquivo.

Se você quiser ler linha por linha, use esta abordagem:

with open("users.txt", "r") as f:     for line in f:         print(line.strip())

Você também pode fazer uso do Python readline() e readlines() funções.

# Read the first line with open("data.txt", "r") as f:     first_line = f.readline()  # Read all lines into a list with open("data.txt", "r") as f:     lines = f.readlines()
Usando as funções readline() e readlines() em Python para ler o conteúdo de um arquivo.

O readline() A função é ótima quando você precisa apenas de um número específico de linhas. Isto é útil se você precisar acessar linhas específicas por índice, por exemplo, lines[5]. readlines() entrega cada linha como uma lista, o que é conveniente para indexação, fatiamento ou transformações rápidas.

Gravando em arquivos de texto

Eventualmente, todo desenvolvedor Python precisa colocar algo de volta em um arquivo. Talvez você esteja gerando relatórios, salvando dados limpos ou gravando logs com seu próprio script. A boa notícia é que escrever arquivos em Python é tão simples quanto lê-los. Para gravar novo conteúdo em um arquivo:

report = "Daily summary: All systems operational.n"  with open("summary.txt", "w") as f:     f.write(report)
Escrevendo em um arquivo usando a função write() do Python.

Abrindo um arquivo com "w" cria o arquivo se ele não existir e o sobrescreve completamente se existir. Isso é perfeito quando você gera resultados novos, como exportar um conjunto de dados processados ​​ou gerar novamente um relatório todos os dias. Se, em vez disso, você quiser anexar a um arquivo, use o "a" opção.

log_entry = "User logged in at 14:32n"  with open("activity.log", "a") as f:     f.write(log_entry)
Anexar conteúdo a um arquivo existente usando a função write() do Python.

Use isto quando quiser manter o que já está em um arquivo e simplesmente colar novas linhas no final. Quando você quiser escrever várias linhas, writelines() é útil.

lines = [     "applen",     "bananan",     "cherryn" ]  with open("fruits.txt", "w") as f:     f.writelines(lines)
Escrevendo várias strings em um arquivo usando a função writelines() do Python.

Isso é útil quando você já possui uma lista Python de conteúdo do tipo string. Apenas lembre-se de que ele não adiciona caracteres de nova linha para você, então você precisa incluí-los nas strings.

4
Por David Delony
Como exploro e visualizo dados com Python e Seaborn

Você deve ter ouvido falar que Python é ótimo para análise de dados. Você está procurando uma maneira de visualizar dados que seja fácil de usar e que produza gráficos bonitos? Seaborn pode ser exatamente o que você está procurando.

Por que escolhi Seaborn

Leia o artigo >

Pesquisando em arquivos de texto

Depois de saber como ler e gravar arquivos, o próximo passo é encontrar o que procura dentro deles. Talvez você esteja verificando os logs em busca de mensagens de erro ou extraindo linhas que correspondam a um determinado padrão. Python oferece várias maneiras de pesquisar arquivos de texto. Vejamos um exemplo simples usando loops.

target = "ERROR"  with open("server.log", "r") as f:     for line in f:         if target in line:             print("Found error:", line.strip())
Procurando texto em um arquivo usando um loop for em Python.

Essa abordagem funciona perfeitamente se você estiver procurando apenas uma substring básica. Para uma filtragem um pouco mais avançada, você pode usar padrões regex para automatizá-la. Você pode usar o Python re módulo.

import re  pattern = re.compile(r"Users+d+s+loggeds+in")  with open("activity.log", "r") as f:     for line in f:         if pattern.search(line):             print("Match:", line.strip()) 
Procurando texto em um arquivo usando padrões regex em Python.

Pense em cenários em que você precisa detectar IDs, carimbos de data/hora, formatos ou qualquer coisa com estrutura. Neste exemplo, estamos encontrando linhas onde um usuário com algum ID numérico efetuou login.

Substituindo texto em arquivos

Pesquisar é ótimo. Mas, mais cedo ou mais tarde, você precisará alterar o que está dentro de um arquivo. Python torna a substituição de texto surpreendentemente simples quando você conhece os padrões básicos. Para tarefas básicas de localização e substituição, você pode usar as operações de string do Python.

old = "ERROR" new = "INFO"  with open("server.log", "r") as f:     content = f.read()  updated = content.replace(old, new)  with open("server.log", "w") as f:     f.write(updated) 
Substituição simples de texto em um arquivo usando operações de string do Python.

Este padrão é ideal quando você deseja substituir todas as ocorrências de uma determinada palavra ou frase. Se isso não for adequado para o seu caso de uso, novamente, você tem regex para tarefas avançadas de substituição. Aqui está um exemplo simples:

import re  pattern = r"bUsers+(d+)b" replacement = r"Account 1"  with open("activity.log", "r") as f:     content = f.read()  updated = re.sub(pattern, replacement, content)  with open("activity.log", "w") as f:     f.write(updated) 
Substituindo texto em um arquivo usando Python regex.

Aqui, regex oferece o poder de substituir texto estruturado, não apenas uma string literal.

4
Por Haroon Javed
7 usos para o módulo aleatório em Python

Quer adicionar um pouco de imprevisibilidade ao seu código Python? O módulo aleatório é a maneira mais rápida de fazer isso. Desde a geração de números e listas embaralhadas até a simulação da aleatoriedade do mundo real, é um daqueles módulos pequenos, mas úteis, que todo programador Python deve conhecer. Vamos mergulhar!

Importando o módulo aleatório

Leia o artigo >

Contando palavras, linhas e caracteres

Suponha que você tenha um arquivo de texto e precise de algumas métricas básicas, como número de linhas, palavras e quantas vezes uma palavra aparece. Esses insights podem ser úteis para análise de texto, relatórios e processamento de dados. Python torna isso fácil. Você pode usar loops para contar.

line_count = 0 char_count = 0  with open("notes.txt", "r") as f:     for line in f:         line_count += 1         char_count += len(line)  print("Lines:", line_count) print("Characters:", char_count) 

Este loop simples funciona bem mesmo para arquivos grandes. Você lê uma linha por vez, conta e acompanha o total de caracteres ao longo do caminho. Para contar palavras:

word_count = 0  with open("notes.txt", "r") as f:     for line in f:         words = line.split()         word_count += len(words)  print("Words:", word_count) 

Dividindo cada linha com .split() fornece uma lista de palavras, perfeita quando você faz métricas simples baseadas em palavras.

Contando linhas, caracteres e palavras em um arquivo usando Python.

Para uma análise de palavras mais avançada, você pode aproveitar as vantagens do collections módulo, assim:

from collections import Counter  counter = Counter()  with open("notes.txt", "r") as f:     for line in f:         counter.update(line.split())  print(counter.most_common(5)) 

Se você precisa saber quais palavras aparecem com mais frequência, Counter é incrivelmente útil. Ele conta itens para você e pode até dizer as N palavras mais frequentes com .most_common().

Dividindo e mesclando arquivos

Arquivos de texto podem ficar enormes. Pense em trabalhar com conjuntos de dados com milhões de linhas ou exportações que são grandes demais para serem processadas de uma só vez. Às vezes você precisa dividir um arquivo em pedaços menores e outras vezes você precisa combinar vários arquivos em uma saída limpa e unificada. Python lida com ambas as tarefas com facilidade.

Uma maneira de dividir um arquivo é pegar um número fixo de linhas e gravá-las em novos arquivos. Veja como:

chunk_size = 10 file_number = 1 current_lines = []  with open("bigdata.txt", "r") as f:     for i, line in enumerate(f, start=1):         current_lines.append(line)          if i % chunk_size == 0:             output_name = f"chunk_{file_number}.txt"             with open(output_name, "w") as out:                 out.writelines(current_lines)             current_lines = []             file_number += 1  # write any remaining lines if current_lines:     output_name = f"chunk_{file_number}.txt"     with open(output_name, "w") as out:         out.writelines(current_lines) 

Para mesclar vários arquivos em uma única unidade, o Python glob módulo é útil.

import glob  with open("merged_output.txt", "w") as outfile:     for filename in glob.glob("logs/log*"):         with open(filename, "r") as infile:             outfile.write(infile.read()) 
Mesclando vários arquivos em um único arquivo usando Python.

Aqui, glob pega todos os arquivos que começam com log no logs/ pasta e você simplesmente anexa seu conteúdo em um único arquivo. Isso é perfeito quando você está lidando com arquivos de log diários, exportações parciais de dados ou qualquer diretório cheio de arquivos que pertencem um ao outro.

Depois de dividir e mesclar em sua caixa de ferramentas, você pode automatizar todos os tipos de tarefas rotineiras. Por exemplo, combine logs semanais em um log mensal, divida grandes arquivos de entrada antes de inseri-los em um script, entre outros.

4
Por David Delony
O módulo matemático em Python: 6 cálculos comuns que você pode fazer

É uma piada comum que Python seja uma ótima calculadora em seu modo interativo. Você pode torná-lo ainda melhor com o módulo matemático integrado, que contém muitas das mesmas funções matemáticas que você encontraria em uma calculadora científica ou gráfica portátil.

Constantes

Leia o artigo >

Tratamento de erros e operações seguras de arquivos

Quando você trabalha com arquivos no mundo real, as coisas nem sempre saem como planejado. As operações de arquivo podem falhar por vários motivos. O arquivo pode não existir. Seu programa pode não ter permissão para lê-lo ou gravar nele. Se o seu script travar no meio, você corre o risco de corromper dados ou deixar para trás arquivos incompletos.

Para uma E/S de arquivo mais segura, você deve usar o Python try/except bloco para lidar com erros do Python.

filename = "config.txt"  try:     with open(filename, "r") as f:         data = f.read()         print("File loaded successfully.") except FileNotFoundError:     print("File not found:", filename) except PermissionError:     print("You don’t have permission to read this file.") except Exception as e:     print("Unexpected error:", e) 

Isso permite detectar problemas previsíveis, como arquivos ausentes ou problemas de permissão. Outro problema comum que você pode enfrentar é a codificação. Portanto, certifique-se de lidar com eles quando não tiver certeza de qual codificação um arquivo pode usar.

try:     with open("encoding.txt", "r", encoding="utf-8") as f:         content = f.read()         print("File loaded successfully.") except UnicodeDecodeError:     print("File encoding is not UTF-8. Trying fallback…")     with open("encoding.txt", "r", encoding="latin-1") as f:         content = f.read()         print("Fallback load succeeded:")         print(content) 
Capturando um erro de decodificação unicode ao ler um arquivo usando Python.

O manuseio da codificação evita travamentos ao ler arquivos de ambientes mistos.

4
Por David Delony
Como usar o módulo de estatísticas Python

Python tem algumas bibliotecas maravilhosas para análise estatística, mas elas podem ser um exagero para tarefas simples. A biblioteca de estatísticas integrada pode ser o que você deseja. Aqui estão algumas coisas que você pode fazer com isso. Você não precisa mais se lembrar de fórmulas complicadas ou consultar tabelas.

O que é o módulo de estatísticas Python?

Leia o artigo >


Isso cobre algumas das tarefas mais comuns relacionadas a arquivos que você pode realizar e até mesmo automatizar usando Python. EU Se você estiver interessado em aprender mais sobre Python e seus vários recursos, tente verificar o módulo os ou explorar a função open().

Este artigo foi útil?
Gostei0Não Gostei0

Deixe um comentário

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00