linux下通过Python代码实现获取硬件接口信息

1.CPU架构

Python中,platform模块给提供了很多方法去获取操作系统的信息。

touch cpu.py

vi cpu.py #编辑内容

代码如下:

import platform print(platform.platform()); #获取操作系统名称及版本号

print(platform.version()); #获取操作系统版本号

print(platform.architecture()); #获取操作系统的位数,('64bit', 'ELF')

print(platform.machine()); #计算机类型,'aarch64'

print(platform.node()); #计算机的网络名称

print(platform.processor()); #计算机处理器信息,'aarch64'

print(platform.uname()); #包含上面所有的信息汇总

最后python cpu.py运行脚本得出结果

后面通过重复相同操作即可获得结果

2.CPU 核数

Python版本大于2.6,可以简单的通过下面模块来获取当前cpu数量, cpu_count的返回值

就是cpu数量:

import multiprocessing

multiprocessing.cpu_count()

Python 可以读系统文件 /proc/cpuinfo ,过滤“ processor ”字段统计核心数。
代码示例:
def get_cpu_info():
processor_cnt = 0
cpu_model = ""
f_cpu_info = open("/proc/cpuinfo")
try:
for line in f_cpu_info:
if (line.find("processor") == 0):
processor_cnt += 1
print("cpu counts: %s, cpu model: %s" % (processor_cnt))
finally:
f_cpu_info.close()
get_cpu_info()

3.内存信息

读取内存信息可以直接读系统文件/proc/meminfo。

代码示例:

def get_mem_info():

 mem_info = ""

 f_mem_info = open("/proc/meminfo")

 try:

   for line in f_mem_info:

     if (line.find("SwapTotal") == 0):

        mem_info += line.strip()+ ", "

     elif (line.find("SwapTotal")== 0):

        mem_info += line.strip()

        break

   print("mem_info---- {:s}".format(mem_info))

 finally:

   f_mem_info.close()

get_mem_info()

4.磁盘信息

磁盘信息可以通过shell命令df -h查询。

代码示例:

def get_disc_info():

 #disc_info = os.popen("df -h").read()

 #disc_info = subprocess.Popen("df -h", shell=True).communicate()[0]

 #print(disc_info)

 pipe = subprocess.Popen("df -h", stdout=subprocess.PIPE, shell=True)

 disc_info = pipe.stdout.read()

 print(disc_info)

get_disc_info()

5.网络信息

使用netifaces模块可以获取本机IP、网关等信息。 代码示例:

def GetNetworkIP():

 #获取本地网卡IP地址

 import netifaces

 #routingGateway = netifaces.gateways()['default'][netifaces.AF_INET][0] #网关

 routingNicName = netifaces.gateways()['default'][netifaces.AF_INET][1] #网络适配器信息

 for interface in netifaces.interfaces():

   if interface == routingNicName:

   #print (netifaces.ifaddresses(interface))

     try:

       routingIPAddr = netifaces.ifaddresses(interface)[netifaces.AF_INET][0]['addr']

     except KeyError:

       pass

 #print ("Routing IP Address:%s"% routingIPAddr)

 return routingIPAddr

if __name__ == "__main__":

 try:

   print ("Routing IP Address:",GetNetworkIP())

 except:

   print ("Unable to get the address, there may not be installed netifaces module! command:

pip install netifaces")

GetNetworkIP()

如果存在报错说某个包不存在则通过 pip install ....获取

Logo

更多推荐