import os
import psutil
# True, False, None(未成功执行, 不存在)
# 此种for循环, 不能else return
# pid 进程id
# 信号编号==9 强制结束
def fun_kill(path):
if os.path.exists(path):
for proc in psutil.process_iter(['pid', 'name', 'exe']):
if proc.info['exe'] == path:
print(proc)
print(path, "has been found, pid:", proc.info['pid'])
os.kill(proc.info['pid'], 9)
print(path, "process has been killed, pid:", proc.info['pid'])
return True
print(path, "is not running")
return False
else:
print(path, "does not exist")
return None
fun_kill("...")
你可以使用Python的os
和psutil
库来实现这个功能。下面是一个示例代码:
import os
import psutil
def close_program(path):
for proc in psutil.process_iter(['pid', 'name', 'exe']):
if proc.info['exe'] == path:
os.kill(proc.info['pid'], 9)
close_program("...")
这段代码会遍历正在运行的所有进程,如果进程的可执行文件路径与给定的路径匹配,那么就会结束这个进程。请注意,你可能需要管理员权限来运行这段代码。
警告:在使用这段代码时要小心,因为错误地结束某个进程可能会导致系统不稳定或数据丢失。在使用之前,确保你知道这段代码的作用,并且已经保存了所有重要的工作。
这段代码的主要目的是关闭指定路径下的程序。下面是对这段代码的逐句解释:
import os
:这行代码导入了Python的os
模块,这个模块提供了很多操作系统相关的功能。import psutil
:这行代码导入了Python的psutil
模块,这个模块提供了获取系统信息(如CPU、内存、磁盘、网络、进程等)的功能。def close_program(path):
:这行代码定义了一个名为close_program
的函数,这个函数接受一个参数path
,这个参数表示要关闭的程序的路径。for proc in psutil.process_iter(['pid', 'name', 'exe']):
:这行代码遍历所有正在运行的进程。psutil.process_iter(['pid', 'name', 'exe'])
会返回一个迭代器,每次迭代都会返回一个进程对象,这个对象包含了进程的pid
(进程ID)、name
(进程名)和exe
(进程的可执行文件路径)。if proc.info['exe'] == path:
:这行代码检查当前进程的可执行文件路径是否与给定的路径匹配。os.kill(proc.info['pid'], 9)
:如果路径匹配,这行代码就会结束这个进程。os.kill
函数接受两个参数:第一个参数是要结束的进程的ID,第二个参数是信号编号。在这里,信号编号为9,表示我们要强制结束这个进程。close_program("...")
:这行代码调用了close_program
函数,参数为"..."
,表示我们要关闭这个路径下的程序。
这段代码没有输出结果,它的主要作用是结束指定路径下的程序。如果成功结束了程序,那么这个程序就会立即关闭;如果没有找到指定路径的程序,或者结束进程失败,那么这段代码不会有任何效果。
警告:在使用这段代码时要小心,因为错误地结束某个进程可能会导致系统不稳定或数据丢失。在使用之前,确保你知道这段代码的作用,并且已经保存了所有重要的工作。
psutil
是一个Python的第三方模块,专门用来获取操作系统以及硬件相关的信息,比如:CPU、磁盘、网络、内存等等¹。它主要应用于系统监控,分析和限制系统资源及进程的管理¹²。下面是一些psutil
的常用功能和使用方法:
- 获取CPU信息¹:
psutil.cpu_count()
: 获取CPU的逻辑数量。psutil.cpu_count(logical=False)
: 获取CPU的物理核心数量。psutil.cpu_times()
: 统计CPU的用户/系统/空闲时间。psutil.cpu_percent(interval=0.5, percpu=True)
: 查看CPU的使用率。psutil.cpu_stats()
: 查看CPU的统计信息,包括上下文切换、中断、软中断,以及系统调用次数等等。psutil.cpu_freq()
: 查看CPU的频率。
- 内存相关¹:
psutil.virtual_memory()
: 查看内存使用情况。psutil.swap_memory()
: 查看交换内存信息。
- 磁盘相关¹:
psutil.disk_partitions()
: 查看磁盘分区。psutil.disk_usage("C:\\")
: 查看某个磁盘使用情况。psutil.disk_io_counters()
: 查看磁盘 IO 统计信息。
- 进程管理²:
psutil.process_iter(['pid', 'name', 'exe'])
: 遍历所有进程。os.kill(proc.info['pid'], 9)
: 结束进程。
以上只是psutil
的一部分功能,更多的功能可以参考官方文档²。在使用psutil
时,需要先通过pip安装:pip install psutil
¹²。
注意:在使用这些功能时要小心,因为错误地结束某个进程可能会导致系统不稳定或数据丢失。在使用之前,确保你知道这段代码的作用,并且已经保存了所有重要的工作。
源: 与必应的对话, 2023/11/15
(1) Python常用库之psutil使用指南 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/380842937.
(2) Python运维自动化psutil 模块详解(超级详细) - CSDN博客. https://blog.csdn.net/weixin_44621343/article/details/112726406.
(3) 第二十七章 Psutil 模块 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/140524953.
(4) python psutil系统监控详解 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/79490318.
(5) Python编程——psutil模块的使用详解_import psutil-CSDN博客. https://blog.csdn.net/qq_38684504/article/details/87956015.
(6) undefined. https://pypi.org/project/psutil/.
(7) undefined. http://code.google.com/p/psutil/.
(8) undefined. https://pypi.python.org/packages/source/p/psutil/psutil-5.8.0.tar.gz.
(9) undefined. https://baike.baidu.com/item/时间片/6525414?fr.
(10) undefined. http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率.