基于Python编写一个有趣的进程勾选器(Process Selector)
作者:winfredzhang 发布时间:2023-06-19 06:28:19
标签:Python,进程
简介
一个基于Python的程序,使用tkinter模块创建一个GUI界面,在Checklistbox中列出系统中正在运行的进程的名称和PID,并允许用户选择进程并将其保存到文本文件中。
源代码
import psutil
import tkinter as tk
def save_selected_processes():
# 获取选中的进程名称和PID
selected_processes = []
for index in checklistbox.curselection():
process_info = checklistbox.get(index)
selected_processes.append(process_info)
# 将选中的进程名称和PID写入到文本文件中
with open("process.txt", "w") as f:
for process_info in selected_processes:
f.write(process_info + "\n")
def update_checklistbox():
# 获取系统中所有进程的信息
process_list = psutil.process_iter()
# 清空Checklistbox
checklistbox.delete(0, tk.END)
# 循环获取每个进程的名称和PID,并添加到Checklistbox中
for process in process_list:
try:
process_name = process.name()
process_pid = process.pid
checklistbox.insert(tk.END, f"{process_name} - {process_pid}")
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
# 如果进程不存在、无权访问或为僵尸进程,跳过此进程并继续循环
continue
# 更新Checklistbox中的内容
checklistbox.update()
# 创建GUI界面
root = tk.Tk()
root.title("进程列表")
# 创建Checklistbox组件
checklistbox = tk.Listbox(root, selectmode=tk.MULTIPLE)
checklistbox.pack(fill=tk.BOTH, expand=True)
# 添加一个按钮来保存选中的进程列表
save_button = tk.Button(root, text="保存选中的进程", command=save_selected_processes)
save_button.pack()
# 初始化Checklistbox
update_checklistbox()
# 进入事件循环
root.mainloop()
此程序使用psutil模块获取系统中正在运行的进程列表,并将进程的名称和PID添加到一个tkinter的Checklistbox组件中。程序还包括一个按钮,用于保存用户选择的进程名称和PID到文本文件中。用户可以使用Ctrl键选择多个进程,并单击保存按钮以将所选进程保存到文件中。保存的文件名为process.txt。
效果如下
来源:https://blog.csdn.net/winniezhang/article/details/129254876


猜你喜欢
- 前言有多种 Python 模块用于隐藏用户输入的密码,其中一个是**maskpass()模块。在 Python 中,借助maskpass()
- Spark Streaming VS Structured StreamingSpark Streaming是Spark最初的流处理框架,使
- 代码如下: var lishustr = "qwertyuiopasdfghjklmnbvcxz"; var s = l
- 一、触发器的介绍触发器是与表有关的数据库对象,指在insert/update/delete 之前或之后,触发并执行触发器中定义的SQL语句集
- 要判断自定义对象的类型,用__class__方法,或者用isinstance(object, class-or-type-or-tuple)
- 一、自定义分页1、基础版自定义分页data = []for i in range(1, 302): tmp = {"i
- 目录一、时间序列数据的生成二、Pandas设置索引三、 时间序列数据的截取四、Pandas重复值处理4.1 查询是否有重复值4.2 去除重复
- 这篇文章主要介绍了Python搭建HTTP服务过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 这些包可以独立使用,也可以与其他包一起使用以满足复杂的业务需求。Integration Services 可以提取和转换来自多种源(如 XM
- 网站流量上来后,日志按天甚至小时存储更方便查看和管理,而Python的logging模块也提供了TimedRotatingFileHandl
- 本文实例讲述了Selenium元素的常用操作方法。分享给大家供大家参考,具体如下:Selenium是一个用于Web应用程序测试的工具。Sel
- 前言聚簇索引就是innodb默认创建的基于主键的索引结构,而且表里的数据就是直接放在聚簇索引里,作为叶节点的数据页:基于主键的数据搜索:从聚
- 1.使用nuget下载:Microsoft.Extensions.Configuration.JsonPomelo.EntityFramew
- 扰动的鲁棒性在之前我们讨论权重衰减(L2正则化)时看到的那样,参数的范数也代表了一种有用的简单性度量。简单性的另一个有用角度是平滑性,即函数
- Go语言里的集合一般会用map[T]bool这种形式来表示,T代表元素类型。集合用map类型来表示虽然非常灵活,但我们可以以一种更好的形式来
- 电脑安装git客户端、注册github账号并登陆到本地项目文件夹右键选择git bash here输入个人信息(代码提交者)git conf
- 自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,st
- 本文实例讲述了python自动化之Ansible的安装。分享给大家供大家参考,具体如下:一 点睛Ansible只需在管理端部署环境即可,建议
- 恭喜您,您中奖了,你的中奖码是(请牢记,领奖需要):XXXXXXXXXXX然后用户输入XXXXXXXXXXX,简单验证后就可以领奖了。你使用
- 概述今天主要分享下mysql数据库应该如何正确的删除binlog日志,这里要注意不要强制使用rm命令进行清除。否则mysq-bin.inde