当前位置: 代码网 > it编程>前端脚本>Python > python如何获取主机信息(cpu,内存,硬盘,网络)

python如何获取主机信息(cpu,内存,硬盘,网络)

2026年09月23日 Python 我要评论
python获取主机信息(cpu,内存,硬盘,网络)代码如下# -*- coding = utf-8 -*-# @time: 2023/9/26 12:22# @author: yk# @file:

python获取主机信息(cpu,内存,硬盘,网络)

代码如下

# -*- coding = utf-8 -*-
# @time: 2023/9/26 12:22
# @author: yk
# @file: 获取系统信息.py
# @software: pycharm
import psutil as pl

def showcomputerinfo():

    print("cpu信息:")
    # # logical=false 查看物理核心数
    cpucountsphysical = pl.cpu_count(logical=false)
    print(f"    cpu物理核数:{cpucountsphysical}")
    #
    # # logical=true 获取逻辑核心数(线程数)
    cpu_count = pl.cpu_count(logical=true)
    print(f"    cpu线程数:{cpu_count}")
    #
    # # cpu的使用率
    cpu_percent = pl.cpu_percent(interval=1)
    print(f"    cpu使用率:{cpu_percent}%")
    #
    print('内存信息:')
    # # 物理内存总量
    total_memory = pl.virtual_memory().total
    print(f'    内存总量:{int(total_memory/1024/1024)}m')
    #
    # # 可用内存总量
    availabele_memory = pl.virtual_memory().available
    print(f'    可用内存:{int(availabele_memory/1024/1024)}m')
    #
    # # 内存使用率
    memory_percent = pl.virtual_memory().percent
    print(f'    内存使用率:{memory_percent}%')

    print("磁盘信息:")
    # 获取磁盘分区信息
    disk_parts = pl.disk_partitions()
    for disk in disk_parts:
        print(f'    分区名称:{disk.mountpoint.split(":")[0]} 文件类型:{disk.fstype}',end=' ')
        print(f'磁盘利用率:{int(pl.disk_usage(disk.mountpoint).total/1024/1024/1024)}g',end=' ')
        print(f'磁盘空间:{pl.disk_usage(disk.mountpoint).percent}%')

    # 获取网卡信息
    print('网卡信息:')
    ip_adds = pl.net_if_addrs()
    keys = ip_adds.keys()
    for key in keys:
        print(f"    网卡名称:{key}",end=' ')
        print(f"网卡mac:{ip_adds[key][0].address}",end=' ')
        print(f"网卡ip:{ip_adds[key][1].address}")


def getnetworkinfo():

    print("获取网络连接信息")
    netconnect = pl.net_connections()
    print('本地地址'.ljust(23),'远程地址'.ljust(22),'pid'.ljust(10),'进程名')
    for nc in netconnect:
        if nc[5] == 'established':
            if nc[3][0].startswith('10') :
                precessname = getpidnname(nc[6])
                print(f'{nc[3][0]}:{nc[3][1]}'.ljust(25),f'{nc[4][0]}:{nc[4][1]}'.ljust(25),f'{nc[6]}'.ljust(10),precessname)

def getpidnname(pid):

    processlist = pl.process_iter()
    for process in processlist:
        if process.pid == pid:
            return process.name()

showcomputerinfo()
getnetworkinfo()

效果如下

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com