Gostaria de uma opnião referente a pratica de chamar programas externos ao
seu. Por exemplo, qual seria a melhor maneira?
Andei procurando no google e vi q posso utilizar os.sytem e o os.popen
Praticamente todos os programas que tenho q executar externamente ao meu,
terei q montar uma linha de comando do mesmo onde terei q informar onde
encontra-se os arquivos e seus nomes, etc. Há um outro tipo, onde tenho que
criar um arquivo de configuração e chamar o programa informando somente onde
esta o arquivo de configuração. O que eu preciso em todos os casos se o
programa externo conseguiu executar sem erros uma vez que sua saída pode ser
entrada para um outro programa externo que ira ser chamado pela minha
aplicação.
Com o os.system eu consegui executar e entende-lo. Porem o mesmo nao me
apresenta todos os requisitos que necessito. Seu controle é bem pequeno. Ja
o os.popen eu nao consegui entende-lo.
Sendo assim, gostaria de saber onde posso encontrar mais
informações/exemplos alem de opniões a respeito.
Desde ja agradeço a atenção de todos.
Abraços,
--
Rodrigo Antonio Faccioli
Ph.D Student in Electrical Engineering
University of Sao Paulo - USP
Engineering School of Sao Carlos - EESC
Department of Electrical Engineering - SEL
Intelligent System in Structure Bioinformatics
http://laips.sel.eesc.usp.br
Phone: 55 (16) 3373-9366 Ext 229
Curriculum Lattes - http://lattes.cnpq.br/1025157978990218
[As partes desta mensagem que não continham texto foram removidas]
------------------------------------
,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia: |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar |
| E se você é usuário do BOL lembre-se de cadastrar o |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html
Pode começar estudando o subprocess, o módulo que substituiu as duas
funções que você citou :)
http://docs.python.org/library/subprocess.html
> Abraços,
Até!
--
Adam Victor Nazareth Brandizzi
http://brandizzi.googlepages.com/
Ultimamente eu tenho usado o subprocess. Não sei se é o melhor, mas
resolveu meus problemas.
exemplos:
>>> import subprocess
>>> subprocess.call(['ls','-la'])
total 556
drwxr-xr-x 21 root adm 4096 2009-04-05 12:27 .
drwxr-xr-x 21 root adm 4096 2009-04-05 12:27 ..
-rw-r--r-- 1 root root 0 2009-04-05 12:27 .autofsck
drwxr-xr-x 2 root root 4096 2009-04-03 19:40 bin
drwxr-xr-x 3 root root 4096 2009-04-05 12:27 boot
Executando um comando:
>>> proc = subprocess.Popen(['openoffice.org2.4'])
>>> proc.pid # Retorna o pid do processo
25190
Pegando a saida e os erros:
>>> proc = subprocess.Popen(['ls','-la'],stdout=subprocess.PIPE)
>>> stdout, stderr = proc.communicate()
>>> stdout
'total 556\ndrwxr-xr-x 21 root adm 4096 2009-04-05 12:27
.\ndrwxr-xr-x 21 root adm 4096 2009-04-05 12:27 ..\n-rw-r--r-- 1
root root 0 2009-04-05 12:27 .autofsck\ndrwxr-xr-x 2 root root
4096 2009-04-03 19:40 bin\ndrwxr-xr-x 3 root root 4096 2009-04-05
12:27 boot\n-rw------- 1 root root 462219 2009-04-05 14:34
dead.letter\ndrwxr-xr-x 15 root root 4400 2009-04-05 14:21
dev\ndrwxr-xr-x 129 root root 12288 2009-04-05 15:58 etc\ndrwxr-xr-x
6root root 4096 2009-03-20 15:06 home\ndrwxr-xr-x 2 root root 4096
2009-03-20 14:12 initrd\ndrwxr-xr-x 15 root root 4096 2009-04-03
19:06 lib\ndrwxr-xr-x 5 root root 4096 2009-03-20 07:53
live\ndrwx------ 2 root root 16384 2009-03-20 11:05
lost+found\ndrwxr-xr-x 4 root root 4096 2009-04-05 12:27
media\ndrwxr-xr-x 3 root root 4096 2009-03-20 10:57
mnt\ndrwxr-xr-x 6 root root 4096 2009-03-22 23:37 opt\ndr-xr-xr-x
139 root root 0 2009-04-05 09:27 proc\ndrwx------ 25 root root
4096 2009-04-05 19:12 root\ndrwxr-xr-x 2 root root 12288 2009-04-02
14:52 sbin\ndrwxr-xr-x 12 root root 02009-04-05 09:27
sys\ndrwxrwxrwt 28 root root 4096 2009-04-05 19:18 tmp\ndrwxr-xr-x
14 root root 4096 2009-03-20 16:55 usr\ndrwxr-xr-x 17 root root4096
2009-03-21 11:02 var\n'
>>> stderr
>>>
Espero que tenha ajudado
vlw
abraço
Gabriel M. Monnerat
> http://laips.sel.eesc.usp.br <http://laips.sel.eesc.usp.br>