【Linux】linux下用python获取底层硬件信息接口
2023-09-11 14:22:07 时间
实验目的:
1.通过Python实现对底层硬件信息的获取
(包括但不限于 CPU架构、CPU核数、内存信息、磁盘信息、 网络信息)
实验内容:
1.查看-CPU架构
2.查看-CPU核数
3.查看-内存信息
4.查看-磁盘信息
5.查看-网络信息
1)查看-CPU架构
#Python中,platform模块给提供了很多方法去获取操作系统的信息。
#encoding:utf-8
import platform
print(platform.platform()) #获取操作系统名称及版本号
print(platform.version()) #获取操作系统版本号
print(platform.architecture()) #获取操作系统的位数
print(platform.machine()) #计算机的网络名称
print(platform.processor()) #计算机处理器信息
print(platform.uname()) #包含上面所有的信息汇总
示例如下:
kali Linux:
CentOS 7:
输出结果:
2)查看-CPU核数
#encoding:utf-8
import multiprocessing
print(multiprocessing.cpu_count())
示例如下:
kali Linux:
CentOS 7:
输出结果:
3)查看-内存信息
#encoding:utf-8
mem_info = ""
f_mem_info =open("/proc/meminfo")
try:
for line in f_mem_info:
if(line.find("MenTotal")==0):
men_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()
示例如下:
kali Linux:
CentOS 7:
输出结果:
4)查看-磁盘信息
#磁盘信息可以通过shell命令df -h查询
#encoding:utf-8
import subprocess
pipe = subprocess.Popen("df -h",stdout = subprocess.PIPE, shell=True)
disc_info = pipe.stdout.read()
print(disc_info)
示例如下:
kali Linux:
CentOS 7:
输出结果:
5)查看-网络信息
需要提前安装以下netifaces第三方库。
#使用netifaces模块可以获取本机IP、网关等信息。
#encoding:utf-8
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'] #获取IP
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")
示例如下:
kali Linux :
输出结果:
相关文章
- [python] Kmeans文本聚类算法+PAC降维+Matplotlib显示聚类图像
- Python语法之com[1][:-7]
- linux - python:卸载
- py python-pptx 创建ppt
- Python的一些教程(转)
- linux使用shell执行一个Python文件
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- vscode 编辑python 如何格式化
- Python Django jsonpickle序列化隐藏部分字段代码示例
- paip.python错误解决24
- 华为OD机试 - 字符串重新排列、字符串重新排序(Java & JS & Python)
- 100行Python代码,快速搭建一个电影展示网站
- Python之ffmpeg-python:ffmpeg-python库的简介、安装、使用方法之详细攻略
- Python:利用python代码编程实现将视频的avi格式转换为MP4格式
- 已解决2.Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and wi
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
- 信号概述 硬件异常将产生信号 进程间通信概述 进程间通信 进程间通信功能 Linux 操作系统支持的主要进程间通信的通信机制 linux 进程间通信(IPC)由以下几个部分发展而来 数据传输 信号
- Python编程:threading多线程
- Python: yield, python 实现tail -f
- [Python 学习] 两、在Linux使用平台Python
- pycharm下可以运行python项目,Linux命令行下报错无法导包,且sys.path.appen()添加环境变量无效
- L76.linux命令每日一练 -- 第11章 Linux系统管理命令 -- free和iftop
- L45.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- sudo和id
- L42.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- groupdel和passwd
- L36.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- locate和updatedb
- python接口测试之mock(三)
- Python Inotify 监视LINUX文件系统事件
- linux===给新手的 10 个有用 Linux 命令行技巧(转)
- python BaseManager分布式学习
- Python调用执行Linux系统命令(四种方法)
- Python可视化数据分析01、python环境搭建