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
ewrite
. - Ficheiros CSV utilizando a biblioteca
pandas
. - Bases de dados SQL utilizando a biblioteca
sqlite3
. - Ficheiros Excel utilizando
pandas
juntamente comopenpyxl
ouxlrd
.
Quizz
- Qual é a função utilizada para ler todas as linhas de um ficheiro de texto em Python?
- Como podemos guardar um DataFrame num ficheiro CSV sem incluir o índice?
- Que biblioteca padrão Python é usada para interagir com bases de dados SQLite?
- Qual biblioteca Pandas usa para ler ficheiros Excel?
- Mostre um exemplo de código para inserir dados numa tabela SQL chamada
clientes
.