segunda-feira, maio 30, 2011

Subprocess com Python - Tratamento de erros - parte 2

O valor de retorno do comando call() é o mesmo código de saída do programa que foi chamado. O comando de chamada é responsável por interpretar e detectar possiveis erros. Para tal a biblioteca subprocess possui o check_call(), que funciona de maneira parecida com o call(), porém no check_call() o código de saída é checado, e caso esse código indique um erro. Será feita uma chamada a uma exescessão chamada CalledProcessError.
Por exemplo:


fonte: doughellmann

sexta-feira, maio 27, 2011

Subprocess com Python - Executando comando externo- parte 1

Comunicão entre processos com Python.
O módulo subprocess permite você criar novos processos através de Python e assim se conectar aos seus inputs/outputs/erros pipes e obter seu código de retorno.

Rodar comando do shell:
Para executar um comando sem interagir com ele faça a chamada call() assim como faria com os.system()

import subprocess
# Simple command
subprocess.call(['ls', '-1'], shell=True)

Com o comando acima teremos a seguinte saída:
$ python subprocess_os_system.py

__init__.py
index.rst
interaction.py
repeater.py
signal_child.py
signal_parent.py
subprocess_check_call.py
subprocess_check_output.py
subprocess_check_output_error.py
subprocess_check_output_error_trap_output.py
subprocess_os_system.py
subprocess_pipes.py
subprocess_popen2.py
subprocess_popen3.py
subprocess_popen4.py
subprocess_popen_read.py
subprocess_popen_write.py
subprocess_shell_variables.py
subprocess_signal_parent_shell.py
subprocess_signal_setsid.py


E desde que tenhamos shell=True teremos acesso as variáveis de shell também.
import subprocess
# Command with shell expansion
subprocess.call('ls -1 $HOME', shell=True)


Dessa forma teremos a saída:
$ python subprocess_shell_variables.py

/home/maltzsama


Agora já sabemos executar um comando externo do sistema operacional ou mesmo um executavel qualquer usando subprocess, no próximo post veremos como fazer tratamento de erros em subprocess.

fonte: doughellmann.com

Gedit como IDE Python

Venho programando em Python há algum tempo, já até escrevi um post mostrando como usar o Komodo Edit como um editor Python.
Mas acredito que a maioria como eu usa Linux + Python para programar. Existem diversos editores no mundo Linux, muitos usam o EMAC(não me agrada muito), Vi, nano. Também existem algumas IDE's como o proprio Eclipse e o Netbeans(acho que com suporte descontinuado). Mas sempre usei muito mais o Gedit, pela simplicidade e capacidade de extenção com plugins.
Então podemos começar colocando os plugins básicos do Gedit para facilitar nossas vidas. Algumas distribuições já vem instalados. Caso contrario faça:

Arch Linux
pacman -Sy gedit-plugins
ubuntu
sudo apt-get update
sudo apt-get install gedit-plugins

Após a instalação desses plugins padrões você poderá habilitalos da seguinte forma:
Editar->Preferências->Plugins


Depois de selecionar os principais plugins que serão utilizados, recomendo:
Os plugins que não são links é porque já foram automaticamente instalados com o pacote gnome-plugins. Os outros plugins que possuem links você precirá baixá-los e descompactalos na seguinte pasta.
.local/share/gedit/plugins/ ou /usr/lib/gedit/plugins/, se você quiser os plugins já instalados para qualquer usuário.

Você ainda tem a possibilidade de configurar o CVS, ou GIT para funcionar como controle de versão do seu projeto. Mas isso é assunto pra outro post. 

quinta-feira, maio 05, 2011

Instalação do Python no MS-DOS/FreeDOS

Existem interpretadores Python para diversas arquiteturas além de Linux, Windows e Mac. Você pode consultar as arquiteturas disponiveis aqui. Dentre elas esta a implementação para DOS. Mas porque instalar Python em MSDOS? Bem apesar de existir os famoses arquivos em lote ou bat-files sabemos que eles possuem muitas restrições e incapacidades e para conseguirmos transpor essa barreira podemos, mais uma vez, contar com Python.
Existe o site da caddit que disponibiliza a versão PythonD 2.4.2 Release 1.0 que é nada mais que um arquivo zip contendo os executaveis do Python.
Agora como colocar isso para funcionar? Inicialmente, claro, é preciso descompactar essa pasta dentro da sua partição DOS. Após isso feito é importante setar algumas coisas no autoexec.bat.


SET PATH=%PATH%;c:\pyd\bin\python
SET PYTHONHOME=c:\pyd\
SET PYTHONCASEOK=1


Depois de adicionar essas linhas ao final do autoexec.bat vc só precisará reiniar o computador e terá tudo pronto para usar.

O comando para iniciar o python no DOS é #pythond