大家都知道,linux里一切皆为文件,在linux/unix的根目录下,有个/proc目录,这个/proc 是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做“/proc”),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参数)。与其他文件系统不同,/proc 存在于内存而不是硬盘中。proc 文件系统提供的信息如下:

进程信息:系统中的任何一个进程,在 proc 的子目录中都有一个同名的进程 ID,可以找到 cmdline、mem、root、stat、statm,以及 status。某些信息只有超级用户可见,例如进程根目录。每一个单独含有现有进程信息的进程有一些可用的专门链接,系统中的任何一个进程都有一个单独的自链接指向进程信息,其用处就是从进程中获取命令行信息。

系统信息:如果需要了解整个系统信息中也可以从/proc/stat 中获得,其中包括 CPU 占用情况、磁盘空间、内存对换、中断等。

CPU 信息:利用/proc/CPUinfo 文件可以获得中央处理器的当前准确信息。

负载信息:/proc/loadavg 文件包含系统负载信息。

系统内存信息:/proc/meminfo 文件包含系统内存的详细信息,其中显示物理内存的数量、可用交换空间的数量,以及空闲内存的数量等。

这样,你可以通过cat 命令查看相关信息:

liujl@liujl-ThinkPad-Edge-E431:~/mybash$ cat /proc/cpuinfo

processor: 0

vendor_id: GenuineIntel

cpu family: 6

model: 58

model name: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz

stepping: 9

microcode: 0x15

cpu MHz: 1200.000

cache size: 3072 KB

physical id: 0

siblings: 4

core id: 0

cpu cores: 2

apicid: 0。。。 。。。

liujl@liujl-ThinkPad-Edge-E431:~/mybash$ cat /proc/meminfo

MemTotal: 3593316 kB

MemFree: 2145916 kB

Buffers: 93372 kB

Cached: 684864 kB

SwapCached: 0 kB

Active: 706564 kB

Inactive: 554052 kB

Active(anon): 483996 kB

Inactive(anon): 178388 kB

Active(file): 222568 kB

Inactive(file): 375664 kB。。 。  。。。

那下面介绍如何通过python编程的方式获取需求的信息。

1、获取cpu的信息

#! /usr/bin/env python

#Filename:CPU1.py

from __future__ import print_function

from collections import OrderedDict

import pprint

def CPUinfo():

'''Return the info in /proc/cpuinfo

as a dirctionary in the follow format:

CPU_info['proc0']={...}

CPU_info['proc1']={...}

'''

CPUinfo=OrderedDict()

procinfo=OrderedDict()

nprocs = 0

with open('/proc/cpuinfo') as f:

for line in f:

if not line.strip():

#end of one processor

CPUinfo['proc%s' % nprocs]=procinfo

nprocs = nprocs+1

#Reset

procinfo=OrderedDict()

else:

if len(line.split(':')) == 2:

procinfo[line.split(':')[0].strip()] = line.split(':')[1].strip()

else:

procinfo[line.split(':')[0].strip()] = ''

return CPUinfo

if __name__ == '__main__':

CPUinfo = CPUinfo()

for processor in CPUinfo.keys():

print('CPUinfo[{0}]={1}'.format(processor,CPUinfo[processor]['model name']))

运行如下:

liujl@liujl-ThinkPad-Edge-E431:~/mypython$ python CPU1.py

CPUinfo[proc0]=Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz

CPUinfo[proc1]=Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz

CPUinfo[proc2]=Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz

CPUinfo[proc3]=Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz

2、获取内存信息

#! /usr/bin/env python

#Filename:meminfo.py

from __future__ import print_function

from collections import OrderedDict

def meminfo():

'''return the info of /proc/meminfo

as a dictionary

'''

meminfo = OrderedDict()

with open('/proc/meminfo') as f:

for line in f:

meminfo[line.split(':')[0]] = line.split(':')[1].strip()

return meminfo

if __name__ == '__main__':

meminfo = meminfo()

print("Total memory:{0}".format(meminfo['MemTotal']))

print("Free memory:{0}".format(meminfo['MemFree']))

结果如下:

liujl@liujl-ThinkPad-Edge-E431:~/mypython$ python meminfo.py

Total memory:3593316 kB

Free memory:2113712 kB

参考:http://www.ibm.com/developerworks/cn/linux/1312_caojh_pythonlinux/index.html

python读取linux内存_使用python获取CPU和内存信息(linux系统)相关推荐

  1. python读取sas数据集_利用Python获取SAS和R自带数据集

    图:北京-奥森公园-2018年4月 无论是SAS.R还是Python,本身都自带一些数据集,对于初学者来说,可以通过这些自带的小数据集进行编程练习,无疑是非常方便的.SAS.R作为统计分析软件,本身自 ...

  2. python读取cad表格_使用Python读取AutoCAD DXF文档

    作为<使用Python创建AutoCAD DXF文档>的姊妹篇,本文介绍用Python读取DXF ============================================= ...

  3. python读取第二行_使用Python操作Excel(二):读取数据表

    上一节我们提到,使用openpyxl可以方便的对数据表进行操作,例如:抽象Excel数据并存入数据库 将数据库数据导出到Excel 给一个已存在的数据表追加信息 我们还介绍了一些Excel的基本术语, ...

  4. python读取xls文件_从python中的xls读取unicode

    我正在尝试使用 Python读取.xls文件.该文件包含多个非ascii字符(即äöü).我已经尝试过使用openpyxls和xlrd(我对xlrd寄予厚望,因为它无论如何都会读取unicode中的所 ...

  5. python读取网络摄像头_使用Python/Linux读取网络摄像头的选项

    我正在寻找一种方法,将网络摄像头集成到我的python程序中. 我运行的是Raspberry Pi型号,频率为900mHz,因此解决方案需要与ARM兼容,并且(希望)轻量级. 我看到的大多数帖子都推荐 ...

  6. python读取sav文件_在Python中读取SPSS(.sav)文件时,获取“title already used as a name or title”错误...

    我正在读一个SPSS文件(.sav).我下面的代码可以读取.sav文件.但是,我遇到了一个非常奇怪的错误.当我试图读取另一个.sav文件时,它会给出以下错误Traceback (most recent ...

  7. python读取mt4数据_[转载]如何获取MT4完整的历史数据?

    你还在为找不到MT4完整的历史数据发愁吗?本软件将为你获得自2000年1月1日起的任意货币对完整数据!!!终极解决方案!!!!! 一些经纪商的MT4平台数据不全或有缺失,这个MT5脚本能够把MT5终端 ...

  8. python读取pdf表格_【Python 库】解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比...

    pdf 是个异常坑爹的东西,有很多处理 pdf 的库,但是没有完美的. 一.pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本. ...

  9. 怎么用python读取大文件_使用Python读取大文件的方法

    背景准备试一试:f =开放(\u201C\/道路\/ \/文件\u201D,\u201Cr\u201D)打印()最后:如果f:()调用读()将读取所有文件的内容,如果文件有10 g,记忆会破灭,所以, ...

  10. python读取rtf文件_【Python】【IO】文件读写

    一.打开的文件在使用完后要关闭 >>>f=file('fibs.py') #用''表示文件名 #无''表示变量名 >>>f.read() #打印fibs.py中的内 ...

最新文章

  1. 悉尼大学陶大程:遗传对抗生成网络有效解决GAN两大痛点
  2. Request对象 --web浏览器向web服务端的请求
  3. 从C#中的枚举获取int值
  4. boost::hana::symmetric_difference用法的测试程序
  5. mac 安装php5.6 redis 扩展,centos6.5环境 安装php5.6的redis扩展
  6. 让行内元素(如图片)在div中水平垂直居中 (干货)
  7. 斐波那契数列(二)--矩阵优化算法
  8. 【Antlr】WHITESPACE is not a recognized channel name
  9. java swt 文件选择,Java SWT文件对话框中的文件多选
  10. python如何打开图片_python如何处理图片
  11. ImageDataGenerator生成器的flow,flow_from_directory用法
  12. 2021-08-3116. 最接近的三数之和 排序+双指针
  13. 被讨厌的勇气:课题分离理论
  14. OpenCascade Primitives BRep-Torus
  15. nginx服务器缓存文件清理,清除nginx缓存文件并不总是有效
  16. 面试季,各大厂真实面试题拿走不谢
  17. 模拟设计的100条圣经(汉化版)
  18. 21岁:写给自己也写给未来的自己的话
  19. unity实现神笔马良效果
  20. IE调试网页之六:使用 F12 开发人员工具调试 HTML 和 CSS (Windows)

热门文章

  1. USACO section1.3 Barn Repair 修理牛棚(贪心)
  2. sharepoint中显示网页库item的webpart和显示列表库item的webpart
  3. Script - MapSubString()使用
  4. AjaxControlToolkit工具控件之Accordion错误解决方法
  5. 等待3月份的beta1
  6. linux网络协议栈 转发组播,Linux 网络协议栈开发基础篇(十)—— 组播(Multicast)基础...
  7. android10无法获取ssid,解决Android 8.0和9.0无法获取SSID (unknow ssid)
  8. 单选按钮必填会有红色选中提示吗_视频切割怎么弄?视频剪辑软件可以切割视频吗?...
  9. 拒绝用户“root”@“localhost”的访问(使用密码:yes)_使用PHP和Github Webhook实现自动部署
  10. ctypes python 结构体_Python 中 ctypes 的使用