Tratamento de dados de várias fontes: TEXTO, CSV, SQL, XLS

Neste capítulo, vamos explorar como tratar dados provenientes de diversas fontes usando Python. Veremos como ler, processar e manipular dados em diferentes formatos: TEXTO, CSV, SQL e XLS. Utilizaremos bibliotecas populares como pandas e sqlite3 para facilitar estas operações.

Trabalhar com Ficheiros de Texto

Ficheiros de texto são uma das formas mais simples de armazenamento de dados. Podemos ler e escrever ficheiros de texto utilizando as funções incorporadas do Python.

Leitura de um Ficheiro de Texto

Vamos começar por ler um ficheiro de texto simples. Suponha que temos um ficheiro chamado dados.txt com algumas linhas de texto:

linha 1: Olá, mundo.
linha 2: Bem-vindo ao Python.
linha 3: Ficheiros de texto são fáceis de manipular.

Podemos ler este ficheiro da seguinte forma:

with open('dados.txt', 'r') as ficheiro:
    conteudo = ficheiro.readlines()
    for linha in conteudo:
        print(linha.strip())
Escrita num Ficheiro de Texto

Se quisermos escrever dados num ficheiro de texto, podemos fazer assim:

dados = ["Primeira linha", "Segunda linha", "Terceira linha"]

with open('saida.txt', 'w') as ficheiro:
    for dado in dados:
        ficheiro.write(dado + '\n')

Manipulação de Ficheiros CSV

Ficheiros CSV (Comma-Separated Values) são amplamente utilizados para armazenar dados tabulares. Vamos utilizar a biblioteca pandas para facilitar a manipulação destes ficheiros.

Leitura de um Ficheiro CSV

Suponha que temos um ficheiro dados.csv com o seguinte conteúdo:

nome,idade,cidade
Alice,30,Lisboa
Bruno,25,Porto
Carla,28,Coimbra

Podemos ler este ficheiro com pandas:

import pandas as pd

df = pd.read_csv('dados.csv')
print(df)
Escrita num Ficheiro CSV

Para escrever um DataFrame de volta para um ficheiro CSV:

df.to_csv('saida.csv', index=False)

Manipulação de Dados SQL

SQL é utilizado para interagir com bases de dados relacionais. Vamos utilizar a biblioteca sqlite3 para demonstrar como ler e escrever dados numa base de dados SQL.

Leitura de Dados de uma Base de Dados SQL

Vamos começar por criar uma base de dados simples e uma tabela de exemplo:

import sqlite3

conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()

cursor.execute('''
CREATE TABLE IF NOT EXISTS pessoas (
    id INTEGER PRIMARY KEY,
    nome TEXT,
    idade INTEGER,
    cidade TEXT
)
''')

# Inserir alguns dados
cursor.execute('INSERT INTO pessoas (nome, idade, cidade) VALUES ("Alice", 30, "Lisboa")')
cursor.execute('INSERT INTO pessoas (nome, idade, cidade) VALUES ("Bruno", 25, "Porto")')
cursor.execute('INSERT INTO pessoas (nome, idade, cidade) VALUES ("Carla", 28, "Coimbra")')

conexao.commit()

Para ler os dados desta tabela:

cursor.execute('SELECT * FROM pessoas')
dados = cursor.fetchall()

for linha in dados:
    print(linha)

conexao.close()
Escrita de Dados numa Base de Dados SQL

Podemos usar o seguinte código para adicionar mais dados à tabela:

conexao = sqlite3.connect('exemplo.db')
cursor = conexao.cursor()

cursor.execute('INSERT INTO pessoas (nome, idade, cidade) VALUES ("Daniel", 32, "Faro")')

conexao.commit()
conexao.close()

Manipulação de Ficheiros XLS

Para trabalhar com ficheiros Excel (XLS), utilizamos a biblioteca pandas juntamente com openpyxl ou xlrd.

Leitura de um Ficheiro XLS

Suponha que temos um ficheiro dados.xlsx. Podemos ler este ficheiro da seguinte forma:

df = pd.read_excel('dados.xlsx')
print(df)
Escrita num Ficheiro XLS

Para guardar um DataFrame num ficheiro Excel:

df.to_excel('saida.xlsx', index=False)

Resumo

Neste capítulo, aprendemos a ler e escrever dados de várias fontes utilizando Python:

  • Ficheiros de texto utilizando as funções incorporadas open, readlines e write.
  • Ficheiros CSV utilizando a biblioteca pandas.
  • Bases de dados SQL utilizando a biblioteca sqlite3.
  • Ficheiros Excel utilizando pandas juntamente com openpyxl ou xlrd.

Quizz

  1. Qual é a função utilizada para ler todas as linhas de um ficheiro de texto em Python?
  2. Como podemos guardar um DataFrame num ficheiro CSV sem incluir o índice?
  3. Que biblioteca padrão Python é usada para interagir com bases de dados SQLite?
  4. Qual biblioteca Pandas usa para ler ficheiros Excel?
  5. Mostre um exemplo de código para inserir dados numa tabela SQL chamada clientes.
<< Polimorfismo Índice Bibliotecas >>