帮我写一个基于python的任务管理器程序,功能包括应用与后台进程分开展示;设备各项性能展示;应用历史使用记录;已启动应用;各用户使用记录;各服务启动情况。并分别有按钮点进去展示
时间: 2024-02-20 10:59:31 浏览: 23
好的,我可以为你提供一个基于Python的任务管理器程序的实现方案。主要涉及到以下几个方面的内容:
1. 应用与后台进程分开展示
2. 设备各项性能展示
3. 应用历史使用记录
4. 已启动应用
5. 各用户使用记录
6. 各服务启动情况
首先,我们可以使用Python的psutil库来获取当前系统进程的信息,包括进程ID、进程名称、进程状态等。然后,我们可以通过判断进程的状态,将应用与后台进程分别进行展示。具体代码如下:
```python
import psutil
# 获取当前系统进程列表
processes = psutil.process_iter()
# 分别展示应用与后台进程
app_processes = []
background_processes = []
for process in processes:
try:
process_info = process.as_dict(attrs=['pid', 'name', 'username', 'memory_info', 'cpu_percent'])
if process_info['username'] != 'SYSTEM':
if process_info['name'] not in app_processes:
app_processes.append(process_info['name'])
else:
background_processes.append(process_info['name'])
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
# 展示应用与后台进程
print('应用进程:')
for app_process in app_processes:
print(app_process)
print('\n后台进程:')
for background_process in background_processes:
print(background_process)
```
接下来,我们可以使用Python的psutil库来获取设备的各项性能信息,包括CPU使用率、内存使用率、磁盘使用率等。具体代码如下:
```python
import psutil
# 获取当前设备的各项性能信息
cpu_usage_percent = psutil.cpu_percent()
memory_usage_percent = psutil.virtual_memory().percent
disk_usage_percent = psutil.disk_usage('/').percent
# 展示设备的各项性能信息
print('CPU 使用率:{}%'.format(cpu_usage_percent))
print('内存使用率:{}%'.format(memory_usage_percent))
print('磁盘使用率:{}%'.format(disk_usage_percent))
```
然后,我们可以使用Python的csv库来记录应用的历史使用记录。具体代码如下:
```python
import csv
import datetime
# 记录应用的历史使用记录
def record_app_history(app_name):
with open('app_history.csv', mode='a', newline='') as app_history_file:
app_history_writer = csv.writer(app_history_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
app_history_writer.writerow([app_name, datetime.datetime.now()])
```
接下来,我们可以使用Python的psutil库来获取已启动的应用信息。具体代码如下:
```python
import psutil
# 获取当前已启动的应用信息
def get_running_apps():
running_apps = []
for process in psutil.process_iter(['name']):
try:
process_info = process.as_dict(attrs=['pid', 'name'])
if process_info['name'] not in running_apps:
running_apps.append(process_info['name'])
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
return running_apps
```
然后,我们可以使用Python的csv库来记录各用户的使用记录。具体代码如下:
```python
import csv
import datetime
import getpass
# 记录各用户的使用记录
def record_user_history():
with open('user_history.csv', mode='a', newline='') as user_history_file:
user_history_writer = csv.writer(user_history_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
user_history_writer.writerow([getpass.getuser(), datetime.datetime.now()])
```
最后,我们可以使用Python的subprocess库来获取各服务的启动情况。具体代码如下:
```python
import subprocess
# 获取各服务的启动情况
def get_services_status():
services_status = []
try:
output = subprocess.check_output('systemctl list-units --type service --state running', shell=True)
output_lines = output.decode().split('\n')
for line in output_lines:
if line:
service_name = line.split()[0]
services_status.append(service_name)
except subprocess.CalledProcessError as e:
print(e)
return services_status
```
以上就是一个基于Python的任务管理器程序的实现方案。你可以根据需要对代码进行修改和优化。