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

在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() # 关闭

日志输出
在这里插入图片描述
加一个循环 每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

发布了41 篇原创文章 · 获赞 2 · 访问量 1836

猜你喜欢

转载自blog.csdn.net/weixin_43883485/article/details/105315323