Aug 13 2007
Por Silveira, tags: programação, Python, Tech, Tutorial.
Porque levantar um pesado sistema de banco de dados, criar databases, criar tabelas, configurar permissões acessos, configurar usuários, setar portas, rodar daemons só para resolver um problema simples de armazenamento?
O SQLite é um banquinho leve e simples para resolver de maneira simples problemas que realmente são simples.
Aqui uma tarefa de programação interessante.
Escrever o código que imprime ele mesmo.

Em Python é isso:
import sys
me = open(sys.argv[0])
for line in me:
print line,
me.close()
Em Shell Script por Xisberto:
cat $0
Em PHP por Paulo André:
$file = “teste.php”;
$fcontent = file_get_contents($file);
highlight_string($fcontent, false);
obs: O que eu quero não é o problema de Quine, mas sim um programa que abra seu código-fonte e o imprima. Eu uso isso para páginas feitas em Python onde eu quero que o usuário possa ver o código-fonte da aplicação facilmente.
Se você fizer em outra linguagem e colocar nos comentários, eu o coloco dentro desse post.
Aproveite e dê uma olhada nos melhores preços de espelhos para sua casa.
Buscapé.
Python me tem sido muito útil no dia-a-dia para recuperar grandes quantidades de dados codificadas dentro de sites.
Por exemplo, eu precisava de todos os nomes de cursos de pós graduação da UFC para depois jogar em uns formulário do Joomla. Esses dados podem ser conseguidos neste site da Capes.
Lá os dados estavam assim:

Os nomes dos cursos estavam dentro de células de uma grande tabela, com letras todas em maiúsculo. Tentei copiar e colar um a um, na mão, mas eu vi que eu levaria um eternidade para terminar.
A título de exemplo e por segurança, eu salvei uma cópia da página em questão no nosso servidor, para que o script não falhe.
Então, transformamos esse trabalho chato e repetitivo em algo que o Python pode fazer pra você:
import urllib
pagina = urllib.urlopen("http://eupodiatamatando.com/downloads/cursos.html")
for linha in pagina:
if linha.find("cd_programa") != -1:
tmp = linha.split('>', 1)[1]
nome = tmp.split('< ', 1)[0]
print nome
pagina.close()
A saída desse programa é algo assim:
ADMINISTRAÇÃO DE EMPRESAS
AGRONOMIA (FITOTECNIA)
AGRONOMIA (IRRIGAÇÃO E DRENAGEM)
AGRONOMIA (SOLOS E NUTRIÇÃO DE PLANTAS)
AVALIAÇÃO DE POLÍTICAS PÚBLICAS
BIOQUÍMICA
CIÊNCIAS DA COMPUTAÇÃO
…
Da biblioteca urllib nós usamos o urlopen, que puxou a página e guardou num manipulador chamado pagina, como ele implementa o método next, nós podemos iterar sobre ele usando um simples for. Passamos por todas as linhas e sé há a string “cd_programa” dentro dela, então nós vamos pegar o que está dentro da tag. Claro que foi necessário perceber analisando o código-fonte da página que todas as células que continham o nome de curso possuim essa substring, mas sempre há algo assim.
O método split, que fatia a string, já foi discutido aqui antes.
Você deve estar se perguntando, “Vale a pena criar um programa que lê os dados especificamente de um site e que de uma hora para outra pode parar de funcionar?”. Sim, vale a pena, simplesmente porque com o tempo você vai escrevendo programas em Python cada vez mais rápido. O código só irá rodar uma vez mas no final você economizou tempo, e de uma maneira inteligente.
Por exemplo, se você quiser saber quais são as notícias que estão em cartaz no Br-linux agora:
import urllib
pagina = urllib.urlopen("http://br-linux.org")
for linha in pagina:
if linha.find("node-title") != -1:
tmp = linha.split('>',2)[2]
nome = tmp.split('< ',1)[0]
print nome
pagina.close()
Isso retorna algo assim:
Carregando seus feeds no bolso
Personalize seu teclado com o X e o KDE
Linux na cultura pop: GRUB nos quadrinhos da Marvel
iPod no Linux - guia ilustrado de uso com o Amarok
Feliz dia do Administrador de Sistemas!
…
Experimente usar isso no dia-a-dia, com o tempo você vai ficando bom em achar os padrões e fica fácil extrair semântica de dentro de um site.
Promoção! Livros de Como Programar em Python pelos menores preços você encontra no Buscapé.
O pessoal da mercurytide.com fez essa folha-resumo para Django.

Está disponível em PDF ou em PNG de alta resolução. Dê uma olhada.
Você imprime isso numa folha A4 e você tem em mãos um pequeno guia para referência rápida dos modelos, tags e filtros do Django.
Django é um framework para desenvolvimento rápido de aplicações web. É um framework que está crescendo e sendo muito adotado. Eu estou utilizando ele para um projeto da faculdade.
Comece agora! Dê uma olhada nos livros de programação em Python pelos menores preços. Buscapé.