Python中如何在Windows7下杀死进程
我想用 Python 卸载一个软件,删除文件夹的过程中发现有几个 Python 程序正在占用这个文件夹,我想先杀死进程
找到 PID,也执行了 kill 进程的命令
os.kill(pid, signal.SIGTERM)
我得到了没有权限的错误提示
我是用管理员权限的 CMD 运行的命令
我还用 tkinter 做了个界面,pyinstaller 打包成 exe 可执行程序,右键管理员身份运行
可是还是不能杀死进程
请问该如何有权限杀死进程,先谢谢了
Python中如何在Windows7下杀死进程
ntsd
在Windows 7下用Python杀进程,可以用psutil库,比内置的os.kill更省事。先装库:pip install psutil。
最直接的方法是靠进程名来杀。比如要干掉所有叫notepad.exe的记事本:
import psutil
def kill_process_by_name(process_name):
for proc in psutil.process_iter(['pid', 'name']):
if proc.info['name'] == process_name:
try:
proc.kill()
print(f"已终止进程 {process_name} (PID: {proc.info['pid']})")
except psutil.NoSuchProcess:
print(f"进程 {process_name} (PID: {proc.info['pid']}) 已不存在")
except psutil.AccessDenied:
print(f"无权限终止进程 {process_name} (PID: {proc.info['pid']})")
# 使用示例
kill_process_by_name('notepad.exe')
如果知道具体的进程ID(PID),那就更简单了:
import psutil
def kill_process_by_pid(pid):
try:
proc = psutil.Process(pid)
proc.kill()
print(f"已终止进程 (PID: {pid})")
except psutil.NoSuchProcess:
print(f"进程 (PID: {pid}) 不存在")
except psutil.AccessDenied:
print(f"无权限终止进程 (PID: {pid})")
# 使用示例
kill_process_by_pid(1234) # 替换成你要杀的PID
proc.kill()是强制终止,相当于任务管理器的“结束进程”。如果想温和点,用proc.terminate()试试正常退出,不行再上kill。
注意杀系统进程或没权限的进程会抛AccessDenied,编程时最好用try-except包起来。
总结:用psutil按名字或PID杀进程最靠谱。
哦,用 python 杀?那就不知道了。也可以用 python 调用 command 命令杀。
os.system(‘kill -ID <pid>’), 这样???
不清楚你那儿是什么情况,不过os.kill(pid, signal.SIGTERM)在 Python 2.7 之后都会可以用来杀进程的,估计是你要啥的进程权限比较高?或者你的权限比较低?
感谢大家回复,使用 os.system 调用系统命令 taskkill /F /pid 1234 执行成功了
taskkill /f /im 进程名 /t
import subprocess
subprocess.Popen(‘taskkill /F /im chrome.exe’, shell=True,stdout=subprocess.PIPE)
subprocess.Popen(这里直接 kill 可以吗?’, shell=True,stdout=subprocess.PIPE)

