Criando um Bot em Python para Ler e Processar Arquivos CSV

No mundo da programação e da análise de dados, os arquivos CSV (Comma-Separated Values) são muito comuns. Eles armazenam informações em formato de tabela (linhas e colunas) e podem ser usados em bancos de dados, planilhas e aplicações diversas.

Neste post, vamos aprender a criar um bot em Python capaz de ler e processar arquivos CSV, realizando tarefas simples de manipulação de dados. Isso será útil tanto para iniciantes quanto para quem já está trilhando o caminho da análise de dados ou automação.




O que é um arquivo CSV?

  • CSV é um formato de texto que organiza dados em forma de tabela.

  • Cada linha representa um registro.

  • As colunas são separadas por vírgulas (ou ponto e vírgula em alguns casos).

Exemplo de um CSV simples (alunos.csv):

nome,idade,curso
Ana,21,Engenharia
Carlos,19,Direito
Maria,22,Computação
João,20,Matemática

Passo 1 – Bibliotecas necessárias

O Python tem suporte nativo para CSV com o módulo csv, mas também é muito comum usar pandas, que é mais poderoso para manipulação de dados.

Neste post, vamos ver as duas formas: primeiro com csv, depois com pandas.

import csv
import pandas as pd

Passo 2 – Lendo arquivos CSV com o módulo csv

with open("alunos.csv", newline="", encoding="utf-8") as arquivo:
    leitor = csv.reader(arquivo)
    for linha in leitor:
        print(linha)

Saída:

['nome', 'idade', 'curso']
['Ana', '21', 'Engenharia']
['Carlos', '19', 'Direito']
['Maria', '22', 'Computação']
['João', '20', 'Matemática']

Aqui, cada linha é lida como uma lista.

Se quisermos acessar os valores de forma mais organizada, podemos usar DictReader:

with open("alunos.csv", newline="", encoding="utf-8") as arquivo:
    leitor = csv.DictReader(arquivo)
    for linha in leitor:
        print(linha["nome"], "-", linha["curso"])

Saída:

Ana - Engenharia
Carlos - Direito
Maria - Computação
João - Matemática

Passo 3 – Manipulando dados simples

Exemplo: calcular a média de idade dos alunos.

idades = []

with open("alunos.csv", newline="", encoding="utf-8") as arquivo:
    leitor = csv.DictReader(arquivo)
    for linha in leitor:
        idades.append(int(linha["idade"]))

media = sum(idades) / len(idades)
print("Média de idade:", media)

Saída:

Média de idade: 20.5

Passo 4 – Fazendo a mesma leitura com Pandas

pandas simplifica muito a manipulação de dados.

import pandas as pd

df = pd.read_csv("alunos.csv")
print(df)

Saída:

     nome  idade       curso
0     Ana     21  Engenharia
1  Carlos     19     Direito
2   Maria     22  Computação
3    João     20  Matemática

Calcular a média de idade fica super simples:

print("Média de idade:", df["idade"].mean())

Passo 5 – Criando um “bot” que processa CSV

Podemos transformar isso em um programa interativo que leia qualquer CSV e processe algumas informações.

import pandas as pd

def bot_csv(arquivo):
    try:
        df = pd.read_csv(arquivo)
        print("=== Bot CSV ===")
        print("Colunas disponíveis:", list(df.columns))
        print("Número de linhas:", len(df))
        print("Resumo estatístico:")
        print(df.describe())
        
        while True:
            print("\nO que deseja fazer?")
            print("1 - Mostrar as primeiras linhas")
            print("2 - Calcular média de uma coluna numérica")
            print("3 - Filtrar dados por valor em uma coluna")
            print("4 - Sair")

            escolha = input("Digite a opção: ")

            if escolha == "1":
                print(df.head())
            elif escolha == "2":
                coluna = input("Digite o nome da coluna: ")
                if coluna in df.columns and pd.api.types.is_numeric_dtype(df[coluna]):
                    print("Média:", df[coluna].mean())
                else:
                    print("Coluna inválida ou não numérica.")
            elif escolha == "3":
                coluna = input("Digite a coluna: ")
                valor = input("Digite o valor: ")
                if coluna in df.columns:
                    print(df[df[coluna] == valor])
                else:
                    print("Coluna inválida.")
            elif escolha == "4":
                print("Encerrando o bot.")
                break
            else:
                print("Opção inválida.")
    except Exception as e:
        print("Erro ao processar o arquivo:", e)

# Exemplo de uso:
bot_csv("alunos.csv")

Esse “bot” consegue:
✔ Mostrar estatísticas básicas do CSV.
✔ Calcular médias.
✔ Filtrar linhas por valor.
✔ Ser usado em qualquer arquivo CSV.


Exercícios para praticar

  1. Adicione a opção de salvar os resultados em um novo CSV.

  2. Permita que o usuário escolha quantas linhas visualizar com head().

  3. Crie um menu para exportar gráficos (usando matplotlib).

  4. Adapte o bot para rodar com interface gráfica (Tkinter).


Conclusão

Com poucos comandos em Python, conseguimos criar um bot capaz de ler e processar arquivos CSV, algo extremamente útil para quem trabalha com dados no dia a dia.

Esse é só o começo: com pandas e bibliotecas de visualização como matplotlib e seaborn, você pode expandir esse projeto para criar ferramentas completas de análise.

Agora é sua vez: escolha um CSV real (como relatórios de vendas, planilhas de estudos ou listas de contatos) e teste o bot!

Comentários

Postagens mais visitadas deste blog

Laços de Repetição em Python: Conceitos e Exemplos Práticos

Manipulação de Arquivos no C#: Como Ler, Escrever e Trabalhar com Arquivos de Forma Simples

Como Instalar o Xamarin com C#: Passo a Passo Completo