psutil
parece ser o que você pode querer.
O que não está claro na sua pergunta é se você deseja o nome do executável ou o título da janela. No entanto, se você estiver após o nome do processo executável, poderá fazê-lo com psutil
e algumas outras funções.
Primeiro, instale psutil
com pip
(Python 2) ou pip3
(Python 3). Se o comando não for encontrado, instale os pacotes python-pip
ou python3-pip
, dependendo da versão do Python com a qual você está trabalhando:
# Python 2
sudo pip install psutil
# Python 3
sudo pip3 install psutil
Em seguida, podemos usar psutil
em qualquer script Python e passar um PID. Este é um exemplo do que ele pode fazer, executando python3
na linha de comando, trabalhando com o shell interativo do Python 3 e obtendo as informações desse processo usando o código Python diretamente no shell do Python:
>>> import psutil
>>> import os
>>> os.getpid()
6284
>>> p = psutil.Process(os.getpid())
>>> p.name()
'python3'
>>> p.exe()
'/usr/bin/python3.5'
>>> p.cmdline()
['python3']
>>>
Como você pode ver, é possível obter informações diferentes do sistema sobre o processo no Windows ou no Linux com esses utilitários, embora ainda seja necessário instalar o pacote Python primeiro.
EDITAR
Também podemos encadear isso com a resposta de Jacob Vlijm aqui também, para obter o PID e passá-lo em psutil
(Note que eu encurto 'subprocesso' para 'sp' na minha importação, mas ainda é o subprocess
module):
import psutil
import subprocess as sp
p = psutil.Process(int(sp.check_output(["xdotool", "getactivewindow", "getwindowpid"]).decode("utf-8").strip()))
... e continue usando psutil
para extrair dados específicos.