欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python psutil 获取系统信息和监控使用率

程序员文章站 2024-03-23 12:50:10
...

在Python中获取系统信息的好办法是使用psutil第三方模块
psutil = process and system utilities

安装 psutil

pip3 install psutil

代码

# 导入模块
import psutil # 是一个功能强大的跨平台的系统管理库
import datetime
# cpu的使用率
cup_per = psutil.cpu_percent(interval=0.5) # 0.5刷新频率
# 内存信息
memory_info = psutil.virtual_memory()
# 硬盘信息
disk_info = psutil.disk_usage("/") # 根目录磁盘信息
# 网络信息
net_info = psutil.net_io_counters()
# 获取当前系统时间
current_time = datetime.datetime.now().strftime("%F %T") # %F年月日 %T时分秒
# 拼接显示
log_str = "|---------------------|----------|----------|----------|-----------------------------|\n"
log_str+= "|---------time--------|---cpu----|--memory--|---disk---|-------------net-------------|\n"
log_str+= "|                     |   %dcore  |   %.2fG  |  %.2f  |                             |\n" % (psutil.cpu_count(logical=False), memory_info.total/1024/1024/1024, disk_info.total/1024/1024/1024)
log_str+= "| %s |   %s%%  |   %s%%  |   %s%%  | in:%s out:%s |\n" % (current_time, cup_per, memory_info.percent, disk_info.percent, net_info.bytes_recv, net_info.bytes_sent)
print(log_str)
# 保存信息到日志文件
f = open("log.txt", "a") # 新建log.txt
f.write(log_str + "\n\n") # 写入信息
f.close() # 关闭

日志输出
Python psutil 获取系统信息和监控使用率
加一个循环 每5秒获取一次

# 导入模块
import psutil # 是一个功能强大的跨平台的系统管理库
import datetime


def monitor(time):
    """ 定义函数 实时获取硬件信息 """
    # cpu的使用率
    cup_per = psutil.cpu_percent(interval=time)  # 此时刷新时间是5秒
    # 内存信息
    memory_info = psutil.virtual_memory()
    # 硬盘信息
    disk_info = psutil.disk_usage("/")  # 根目录磁盘信息
    # 网络信息
    net_info = psutil.net_io_counters()
    # 获取当前系统时间
    current_time = datetime.datetime.now().strftime("%F %T")  # %F年月日 %T时分秒
    # 拼接显示
    log_str = "|---------------------|----------|----------|----------|-----------------------------|\n"
    log_str += "|---------time--------|---cpu----|--memory--|---disk---|-------------net-------------|\n"
    log_str += "|                     |   %dcore  |   %.2fG  |  %.2f  |                             |\n" % (
    psutil.cpu_count(logical=False), memory_info.total / 1024 / 1024 / 1024, disk_info.total / 1024 / 1024 / 1024)
    log_str += "| %s |   %s%%  |   %s%%  |   %s%%  | in:%s out:%s |\n" % (
    current_time, cup_per, memory_info.percent, disk_info.percent, net_info.bytes_recv, net_info.bytes_sent)
    print(log_str)
    # 保存信息到日志文件
    f = open("log.txt", "a")  # 新建log.txt
    f.write(log_str + "\n\n")  # 写入信息
    f.close()  # 关闭


def main():
    while True:
        monitor(5) # 每隔5秒执行一次


# __name__值 如果这个文件被其他文件导入 此时__name__指的就是当前文件名
# 如果直接运行 此时__name__值是__main__
if __name__ == '__main__':
    main() # 当独立运行时才会去调用main

相关标签: Python/Linux python