Como abrir um programa externo de dentro do Python

A linguagem Python oferecem meios e métodos diversos para abrir programas externos de dentro da shell ou do seu script.

Quando você concluir o seu uso,  se você o tiver chamado de dentro da shell, é para lá que o prompt de comando irá voltar.

No meu exemplo, vou mostrar como abrir o editor de textos vim, o meu preferido. Mas você pode usar qualquer outro — basta substituir o nome e o caminho (path) dele, no código abaixo.

Se você não souber exatamente em que diretório se encontra o programa que deseja usar, no Linux, use o comando whereis:

whereis nano vim gedit

nano: /bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
vim: /usr/bin/vim /usr/bin/vim.tiny /usr/bin/vim.basic /etc/vim /usr/share/vim /usr/share/man/man1/vim.1.gz
gedit: /usr/bin/gedit /usr/share/gedit /usr/share/man/man1/gedit.1.gz

É possível indicar vários nomes de programas para o whereis.

Neste caso, pedi para ele encontrar o nano, o vim e o gedit (editor padrão do GNOME).

Se você prefere usar o gedit, use o primeiro endereço indicado pelo whereis: ‘/usr/bin/gedit’, portanto.

Para abrir um editor, de dentro da shell, execute o seguinte código:

import os
os.system('/usr/bin/vim ~/scripts/pythonbay.com/apagueme.txt')

A função system(), do módulo os aceita os dois parâmetros:

  1. o caminho e o nome do programa a ser executado: /usr/bin/vim
  2. o caminho e o nome do arquivo que ele irá abrir: ~/scripts/pythonbay.com/apagueme.txt

rodar programas externos do python

Dentro do módulo subprocess, também é possível encontrar uma função para abrir programas externos.

Trata-se da função cal() e ela é bem parecida com a que vimos antes. Veja um exemplo de seu uso:

import subprocess
subprocess.call(['vi', 'nomedoarquivo.txt'])

Se você quiser abrir o Nautilus — o gestor de arquivos padrão do GNOME — pode também indicar o diretório (pasta) e o nome do arquivo a ser destacado dentro do programa:

subprocess.call(['nautilus', '~/scripts/nomedoarquivo.txt'])

screenshot gnome nautilus

 

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 46 outros assinantes