Se você trabalha com análise de dados, automação ou até mesmo engenharia de dados, provavelmente lida com uma rotina clássica: todos os dias (ou semanas), um novo relatório em formato .csv é salvo em uma pasta específica do Google Drive.
A pergunta que surge é: como automatizar meu script em Python para ler sempre o arquivo mais novo, sem que eu precise alterar o ID do arquivo manualmente no código todos os dias?
Como especialista em dados, garanto que ficar copiando e colando IDs de arquivos não é interessante. Neste artigo, vou te ensinar a criar um código simples, mas inteligente no Google Colab que entra em uma pasta do Drive, identifica o .csv mais recente e já o transforma em um DataFrame do Pandas para você trabalhar.
Requisito: A Autenticação no Colab
Antes de buscar o arquivo, precisamos dar permissão ao Google Colab para “enxergar” o seu Google Drive.
Se você acompanha o blog da Octadata, já expliquei o conceito de autenticação segura no artigo Ler dados do Google Sheets com Python (Método 2: Acesso Seguro). Vamos usar a mesma base de segurança, mas com uma pequena adaptação: em vez de chamar o gspread (que serve para planilhas), vamos invocar a API do Google Drive.
Passo a Passo: Buscar arquivo CSV mais recente
Vamos dividir o código em partes para que você entenda exatamente o que cada linha está fazendo. A lógica aqui é simples: Autenticar > Buscar na Pasta > Ordenar por Data > Ler o Arquivo.
1. Preparando o terreno e autenticando
Copie e cole o código abaixo em uma célula do seu Google Colab. Ele vai pedir que você faça login com sua conta do Google.
from google.colab import auth
from google.auth import default
from googleapiclient.discovery import build
from googleapiclient.http import MediaIoBaseDownload
import pandas as pd
import io
# 1. Autenticação
auth.authenticate_user()
creds, _ = default()
# 2. Conectando a API do Google Drive
drive_service = build('drive', 'v3', credentials=creds)2. Identificando a pasta alvo
Vá até o seu Google Drive pelo navegador, abra a pasta onde os arquivos CSV são salvos e olhe para a URL (o endereço no topo do navegador). O ID da pasta é aquele código longo que vem depois de folders/.
Veja no exemplo abaixo:

O ID é o código da área destacada em vermelho.
3. A consulta mágica: buscando o arquivo
Vamos estabelecer 3 condições para a API do Google Drive:
- Olhe apenas para arquivos dentro da pasta X.
- Traga apenas arquivos do tipo CSV.
- Ordene do mais novo para o mais velho e me dê apenas o primeiro resultado.
# Substitua pelo ID da sua pasta
folder_id = 'COLE_O_ID_DA_SUA_PASTA_AQUI'
# A regra de busca (apenas CSVs que não estão na lixeira)
query = f"'{folder_id}' in parents and mimeType='text/csv' and trashed=false"
# Executando a busca no Drive
results = drive_service.files().list(
q=query,
orderBy="createdTime desc", # O segredo de busca: "desc" significa decrescente (do mais novo pro mais velho)
pageSize=1, # Traz apenas o TOP 1 (o mais recente)
fields="files(id, name, createdTime)"
).execute()
items = results.get('files', [])4. Lendo o Arquivo com Pandas
Se o arquivo for encontrado, nós precisamos baixá-lo virtualmente (na memória) e entregá-lo para a biblioteca pandas fazer a leitura. Para isso, usamos o código abaixo:
if not items:
print('Nenhum arquivo CSV encontrado na pasta informada.')
else:
# Pega o primeiro item da lista (o mais recente)
latest_file = items[0]
print(f"Arquivo mais recente encontrado: {latest_file['name']}")
print(f"Data de criação: {latest_file['createdTime']}")
# Fazendo o download do arquivo para a memória do Colab
request = drive_service.files().get_media(fileId=latest_file['id'])
downloaded = io.BytesIO()
downloader = MediaIoBaseDownload(downloaded, request)
done = False
while done is False:
status, done = downloader.next_chunk()
# Retorna o "cursor" de leitura para o início do arquivo
downloaded.seek(0)
# Lendo o CSV com Pandas
df = pd.read_csv(downloaded)
# Exibe as primeiras linhas
display(df.head())
Por que essa é a melhor abordagem?
Você poderia simplesmente “montar o drive” usando drive.mount('/content/drive'). No entanto, o método via API do Google Drive que ensinei acima é o padrão de mercado por três motivos:
- Robustez: Não depende do mapeamento de pastas do Colab (que às vezes fica lento ou desconecta).
- Precisão: O parâmetro
orderBy="createdTime desc"garante a exatidão no nível do servidor do Google. - Escalabilidade: Se amanhã você levar esse código para uma Cloud Function ou AWS, a lógica da API funcionará perfeitamente, o que não aconteceria com o drive.mount.
Feito! Tarefa automatizada com sucesso.




