Is there a way that python can close a windows application (example: Firefox) ?
I know how to start an app, but now I need to know how to close one.
in windows you could use taskkill
within subprocess.call
:
subprocess.call(["taskkill","/F","/IM","firefox.exe"])
/F
forces process termination. Omitting it only asks firefox to close, which can work if the app is responsive.
Cleaner/more portable solution with psutil
(well, for Linux you have to drop the .exe
part or use .startwith("firefox")
:
import psutil,os
for pid in (process.pid for process in psutil.process_iter() if process.name()=="firefox.exe"):
os.kill(pid)
that will kill all processes named firefox.exe
EDIT: os.kill(pid)
is "overkill". process
has a kill()
method, so:
for process in (process for process in psutil.process_iter() if process.name()=="firefox.exe"):
process.kill()
# I have used os comands for a while
# this program will try to close a firefox window every ten secounds
import os
import time
# creating a forever loop
while 1 :
os.system("TASKKILL /F /IM firefox.exe")
time.sleep(10)
If you're using Popen
, you should be able to terminate the app using either send_signal(SIGTERM)
or terminate()
.
See docs here.
In order to kill a python tk window named MyappWindow under MS Windows:
from os import system
system('taskkill /F /FI "WINDOWTITLE eq MyappWindow" ')
stars maybe used as wildcard:
from os import system
system('taskkill /F /FI "WINDOWTITLE eq MyappWind*" ')
Please, refer to "taskkill /?" for additional options.
On OS X:
killall Application
Replace Application with a running app of your choice.
In the same directory as this shell script, make a python file. In the python file, put these two lines of code:
from subprocess import Popen
Popen('sh shell.sh', shell=True)
Replace shell.sh
with the name of your created shell script.
You want probably use os.kill
http://docs.python.org/library/os.html#os.kill