Archive

Python

Posts on Python.

DreamPie – Novo Shell Para Python

O DreamPie vem com um novo conceito para um shell interativo, onde a janela é dividida em caixa de histórico, que permite visualizar comandos anteriores e sua saída, e a caixa de código, onde você escreve seu código. Você também pode copiar o código de qualquer lugar, editá-lo e executá-lo imediatamente.

Abaixo listei algumas das características dele:

  • O código fica formatado com um recuo de quatro espaços.
  • Preenchimento automático de atributos e de arquivo.
  • Permite-lhe guardar o histórico da sessão como um arquivo HTML. O arquivo pode ser carregado no DreamPie e rapidamente refazer os comandos anteriores.
  • Suporta Python 2.5, Python 2.6, Jython 2,5, 2,6 IronPython e Python 3.1. Funciona em Windows, Mac e Linux.
  • Extremamente rápido e responsivo.
  • Licenciado sob a GPL versão 3.

Para conhecer melhor acesse o site.

PS: Ainda não parei para futucar, só instalei e dei uma leve “olhada”, mas o pouco que eu mexi gostei 🙂



Python Para Desenvolvedores – Segunda Edição


Em maio do ano passado postei aqui no blog sobre o lançamento do livro Python Para Desenvolverores de autoria de Luiz Eduardo Borges e hoje eu venho dizer que ele lançou a segunda edição do livro que vem nessa nova edição com 107 páginas a mais, totalizando 360.

Li boa parte da primeira edição infelizmente parei por falta de tempo, mas a leitura desse livro vale a pena.

Novamente parabenizo o Luiz pelo livro e que ele e desejo que ele tenha o merecido reconhecimento. 🙂

Para fazer o download do livre acesse aqui.

“Já está disponível para download a segunda edição do livro Python para Desenvolvedores. A primeira edição foi uma iniciativa inédita, sendo o primeiro livro livre em português sobre a linguagem de programação. A publicação é distribuída sob uma licença Creative Commons, que ajuda garantir o direito autoral, ao mesmo tempo que permite copiar, distribuir, exibir e criar obras derivadas, democratizando o acesso ao conhecimento.Com mais de cem páginas a mais que a anterior, a nova edição traz vários assuntos inéditos e uma extensa revisão do conteúdo. Voltado para desenvolvedores que já tem conhecimento de programação, as 360 páginas do livro explicam de forma simples e objetiva, as tecnologias envolvendo a linguagem utilizadas em projetos. Os capítulos abordam entre outros tópicos, interfaces gráficas, aplicações para Internet e sistemas distribuídos.

Luiz Eduardo Borges, analista de sistemas com pós-graduação em Ciência da Computação pela Universidade do Estado do Rio de Janeiro, buscou a criação de um material abrangente, capaz de fornecer ao leitor explicações e exemplos práticos da maior parte do ferramental disponível na linguagem para o desenvolvimento de soluções de problemas comuns e alguns bastante incomuns de computação.”

FONTE



Curso de Python

Oie gente, tudo bonzinho? 🙂

Desde setembro o Magnun iniciou em seu blog um curso de Python, tenho acompanhado o curso e a linguagem usada por ele é bem simples o que é ótimo principalmente para aqueles que estão iniciando.

Acesse o link do curso e aproveitem 🙂



Arquivos & Python

Algo que venho constantemente usando em meus scripts Python é a manipulação de arquivos, seja criando ou acrescendo textos. Para isso vou usar um exemplo para começar a explicar:

O código acima cria o arquivo (ou se ele já existe o sobescreve) /home/krix/list_ips.txt inserindo o texto declarado na variável Text e em seguida o fecha. Parece bem simples não é?! E é. A manipulação de arquivos com Python é realmente bem simples.

A sintaxe da função open() é:

O primeiro parâmetro arquivo é obrigatório e como se pode ver é o nome e/ou caminho do arquivo a ser aberto;

O segundo parâmetro modo, que não é obrigatório, será uma string que indicará o modo como o arquivo será aberto. São eles:

  • r (read): O arquivo é aberto somente para leitura. Quando não informado o modo este será o padrão.

  • w (write): O arquivo é aberto somente para escrita e será bloqueado caso exista subescrevendo seu conteúdo e criado se não existir.

  • a (append): O arquivo é aberto somente para escrita contudo ao contrário do w que subescreve o conteúdo do arquivo ele irá acrescentar ao arquivo.

Todos os modos acima citados quando seguido do caracter mais (+) o arquivo será aberto tanto para leitura quanto para escrita.

Quando os modos r, w ou a estiver seguido do caracter b ou t isso indicará a forma de manupulação do arquivos, o b indicará que será binário e o t em texto e quando não informado o t será o padrão.

O terceiro parâmetro tamanho do buffer, também não obrigatório, e controla o comportamento do buffer do arquivo. Se 0 não será bufferizado, se 1 será bufferizado e se for um número positivo maior que 1 indicará o tamanho do buffer em bytes.

Acima usamos alguns métodos como o read, write e close mas não falamos nada sobre eles então abaixo irei dá uma definição a eles e a alguns outros métodos que julguei indispensáveis:

  • read(): Lê o arquivo.

  • readline(size): Lê uma só linha do arquivo. Size será a quantidade de caracteres que será lido na linha.

  • readlines(size): Lê todas as linhas do arquivo e retorna numa lista. Size será o número de bytes a ser lido.

  • write(str): Escreve a string passada no arquivo.

  • writelines(): Escreve no arquivo todas as strings de uma lista.

O que seria o mesmo que:

  • close(): Fecha o arquivo.

No exemplo que dei mais acima quando falei sobre o modo a você percebeu que usei dois métodos que os quais ainda não tinha comentado, o join e o append. O join tem a função de concatenar uma string a outra o que seria justamente o que eu precisaria no código. O append adiciona um ítem ao final de uma lista. Dadas as definições vamos explicar: Se eu tivesse ignorado o append e usasse somente o join para adicionar o Text ao arquivo será que funcionaria sem problemas? Sim, mas sem problemas?!?! Humm, isso já seria relativo, se eu retirasse e dexasse o código assim:

O arquivo ficaria assim:

Mas deixando como o exemplo inicial o arquivo ficaria assim:

Fico por aqui com o post, acho que já falei demais :P.

  • a para anexar (append);



Auto Completar no Interpretador Python

Faz um tempinho que não escrevo nenhum post mas juro que não é má vontade, é que estou resolvendo umas bronquinhas mas prometo que vou procurar ficar mais presente. 🙂

Essa semana estava procurando sobre um determinado assunto e acabei encontrando uma dica passada pelo Petry em seu blog (que por sinal eu não conhecia), onde fala sobre o uso do TAB para auto completar as funções no interpretador Python, algo que é muito útil.

Para que fique por padrão em seu interpretador Python crie o arquivo $HOME/.pythonrc e insira o seguinte código:

Você também pode rodar esse código diretamento no interpretador Python mas fazendo isso, sempre que acessar terá que refazer e criando o arquivo não será necerrário. Contudo não podemos esquecer de declarar a variável indicando o local do .pythonrc no .bashrc, então adicione as linhas abaixo no $HOME/.bashrc :

Após isso basta restartar o shell e rodar o interpretador Python:

Muito bom não é?! Mas antes de dá esse post como finalizado acho importante falar um pouco sobre os módulos que usamos para que isso ocorresse:

  • readline: Este módulo permite a edição de linha de comando usando o GNU readline. O módulo readline define algumas funções para facilitar a leitura e escrita de arquivos de histórico do interpretador Python. Este módulo pode ser usado diretamente ou através do módulo rlcompleter, como fizemos aqui. Deste módulo fizemos uso de uma de suas funções a parse_and_bind(string) que, analisar e executar uma única linha de um arquivo.
  • rlcompleter:  Este módulo define uma função de conclusão adequada para o módulo readline completando identificadores válidos Python e palavras-chave.

Agora porque o nome da variável adicionada no .bashrc foi PYTHONSTARTUP e não qualquer outra? Esta é uma variável de ambiente que influencia no comportamento da linguagem onde, o arquivo nela declarado é executado no mesmo espaço interactivo, onde os comandos são executados durante a sessão interativa (no caso o interpretador Python).

Você pode obter mais informações sobre esse e outros módulos e funções aqui. 🙂

este módulo permite a edição de linha de comando usando o GNU readline.


Procurando String em Arquivo com Python

Por esses dias fiz um módulo em Python para buscar uma palavra em algum determinado arquivo, pois achei mais viável para o que estava fazendo, então decidi compartilhar com vocês, e para isso fiz também um script, irei mostrar os dois aqui :). Opniões serão bem vinda, óbvio :).

  • Script SearchString.py

  • Módulo searchstring.py

Abaixo coloquei um exemplo do uso do script e como usei o módulo re (Regular Expression) posso fazer buscas mais precisas. O arquivo que escolhi para mostrar os exemplos foi o script do post Enviando Email em Python: