Comment peut-on utiliser Python dans Ubuntu?
psutil
semble être ce que vous pourriez vouloir.
Dans votre question, il est difficile de savoir si vous voulez le nom de l’exécutable ou le titre de la fenêtre. Cependant, si vous recherchez le nom du processus exécutable, vous pouvez le faire avec psutil
et quelques autres fonctions.
Commencez par installer psutil
avec pip
(Python 2) ou pip3
(Python 3). Si la commande est introuvable, installez les packages python-pip
ou python3-pip
en fonction de la version de Python que vous utilisez:
# Python 2
Sudo pip install psutil
# Python 3
Sudo pip3 install psutil
Ensuite, nous pouvons utiliser psutil
dans tout script Python donné et passer un PID. Voici un exemple de ce qu'il peut faire en exécutant python3
dans la ligne de commande, en utilisant le shell interactif Python 3 et en obtenant les informations de ce processus à l'aide de Python code à droite sur le shell 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']
>>>
Comme vous pouvez le constater, vous pouvez obtenir différentes informations du système sur le processus sous Windows ou Linux à l'aide de ces utilitaires, bien que vous deviez toujours installer le package Python.
MODIFIER
Nous pouvons également enchaîner cela avec la réponse de Jacob Vlijm ici aussi, pour obtenir le PID et le transmettre dans psutil
(notez que je raccourcis 'subprocess' en 'sp' dans mon import, mais ça reste le module subprocess
):
import psutil
import subprocess as sp
p = psutil.Process(int(sp.check_output(["xdotool", "getactivewindow", "getwindowpid"]).decode("utf-8").strip()))
... et continuez ensuite à utiliser psutil
pour extraire des données spécifiques.
import subprocess
pid = subprocess.check_output(["xdotool", "getactivewindow", "getwindowpid"]).decode("utf-8").strip()
print(pid)
mais vous auriez besoin d'installer xdotool
:
Sudo apt install xdotool
On peut même surpasser le pid:
#!/usr/bin/env python3
import subprocess
w_id = subprocess.check_output(["xdotool", "getactivewindow"]).decode("utf-8")
name = subprocess.check_output(["xprop", "-id", w_id, "WM_CLASS"]).decode("utf-8").strip()
print(name)
Notez bien que le WM_CLASS est souvent, mais pas toujours, le processus name.
import wnck
screen = wnck.screen_get_default()
window = screen.get_active_window()
pid = window.get_pid()