本文跟着上一篇文章继续写,上一篇文章的链接

运用Python语言编写获取Linux基本系统信息(一):获得Linux版本、内核、当前时间

一、随便说说

获取文件系统使用情况的思路和上一篇获取主要系统是一样的,都是通过执行命令获取linux执行命令后的打印,然后对打印出的结果进行处理。

本文在CentOS中获取文件系统的命令是df -h(用量以G/M单位进行显示)

在命令行中打印出来的结果是:

二、想法实现

本篇文章中用到了上一遍文章(链接见顶部)的commands模块在这里就不粘贴代码占篇幅了。。。

fdisk_data.py:

 #coding=utf-8
#!/usr/bin/env python
class fdisk_data:
# def __init__(self,filesystem,rom,used,no_used,used_per,mount):
# self.filesystem='' #文件系统
# self.rom='' #容量
# self.used='' #已用
# self.no_used='' #可用
# self.used_per='' #已用百分比
# self.mount='' #挂载点
pass

类fdisk_data.py用来储存文件系统的信息

linux_fdisk.py:

 #coding=utf-8
import commands
import re
from fdisk_data import fdisk_data
class linux_fdisk_in:
def __init__(self):
pass
def fdisk(self):
disk_info=[]
f_command = commands.commands('df -h')
comm=f_command.excute_command()
allLine = []
for eachLine in comm:
for eachList in eachLine.strip().split():
disk_info.append(eachList)
return disk_info
class linux_fdisk:
def __init__(self):
self.fdisk = linux_fdisk_in()
def get_fisk(self):
# fdiskdata=fdisk_data()
disk_info=self.fdisk.fdisk()
fdisks=[]
# print disk_info
#按每一条输出
# for i in range(6):
# j=i
# try:
# while disk_info[j] and not j==1000:
# print disk_info[j]
# j=j+6
# except Exception:
# j=1000
#以类的方式实现
# i=6
# j=1
# while j==1:
# try:
# fdiskdata.filesystem=disk_info[i]
# fdiskdata.rom=disk_info[i+1]
# fdiskdata.used=disk_info[i+2]
# fdiskdata.no_used=disk_info[i+3]
# fdiskdata.used_per=disk_info[i+4]
# fdiskdata.mount=disk_info[i+5]
# fdisks.append(fdiskdata)
# i=i+6
# j=0
# except Exception:
# j=0
# return fdisks
#以字典的方式实现
fdiskdate={'filesystem':'','rom':'','used':'','no_used':'','used_per':'','mount':''}
fdiskdates=[]
i=6
j=1
while j==1:
try:
fdiskdate={'filesystem':disk_info[i],'rom':disk_info[i+1],'used':disk_info[i+2],'no_used':disk_info[i+3],'used_per':disk_info[i+4],'mount':disk_info[i+5]}
fdiskdates.append(fdiskdate)
i=i+6
except Exception:
j=0
return fdiskdates

linux_fdisk.py包含两个类:

类linux_fdisk_in:实现在linux中执行命令,并返回result

类linux_fdisk:输出获取的结果, 在get_fdisk()方法中我分别以三种方式进行实现,把df -h命令中每一行的每一个词当做一个数据进行一条数据进行存储之后在重组进行比较好看的输出,第一种方式我是直接在函数内print,当时测试用的。。。。第二种我是以类的方式进行存储。第三种则是以字典所组成的列表的方式进行存储。

上面的linux_data.py最后是没有用到的。实现的方式感觉都比较简单~~~

最后主函数沿用上次的linux_status_main.py并添加文件系统的输出

linux_status_main.py:

#!/usr/bin/env python
# coding=UTF-8
import linux_status
import os_info
from linux_fdisk import *
#linux版本,内核,时间
linux=linux_status.linux_status()
os= os_info.os_info()
linux=os.os_info()
print '系统:',linux.os_version
print '内核:',linux.os_kernal
print '时间:',linux.os_date
#linux文件系统
fdisk = linux_fdisk()
fdisks = fdisk.get_fisk()
print '文件系统'
for i in range(100):
try:
print fdisks[i].get('filesystem'),'\t',fdisks[i]['rom'],'\t',fdisks[i]['used'],'\t'\
,fdisks[i]['no_used'],'\t',fdisks[i]['used_per'],'\t',fdisks[i]['mount']
except Exception:
break

大概就是这样了。。。。

三、结果展示

到了最后的结果演示了:

输出的没有标明每一列代表什么,我不知道怎么才能把文件系统做的很规整,图中第二行就乱了。。。

刚刚开始学python,写的东西都比较简单,错误比较多,欢迎大家指正批评,共同进步~~!!!!

PS:写完第一篇以后成就感大大的~

运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取的更多相关文章

  1. 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库

    运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...

  2. Python语言编写BP神经网络

    Python语言编写BP神经网络 2016年10月31日 16:42:44 ldy944758217 阅读数 3135   人工神经网络是一种经典的机器学习模型,随着深度学习的发展神经网络模型日益完善 ...

  3. 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本、内核、当前时间

    申请博客有一段时间了,然而到现在还一篇没有写过..... 主要因为没有想到需要写些什么,最近在学习Python语言,照着书上看了看最基础的东西,发现根本看不进去,而且光看的话今天看了觉得都理解懂了,过 ...

  4. 用python语言编写网络爬虫

    本文主要用到python3自带的urllib模块编写轻量级的简单爬虫.至于怎么定位一个网页中具体元素的url可自行百度火狐浏览器的firebug插件或者谷歌浏览器的自带方法. 1.访问一个网址 re= ...

  5. 使用python语言编写脚本控制freeswitch总结

    1.  在Linux环境下已经安装了freeswitch,(没安装freeswitch,请安装说明文档) 2.  进入源代码目录 cd  libs/esl 目录下 首先安装 yum install p ...

  6. Python语言编写脚本时,对日期控件的处理方式

    对日期控件,日期控件的输入控一般是不能手动输入的:把readonly属性去掉就好 其实很简单,我们不去搞时间日期空间,我们把它当成一个普通的input框处理就好了! 但是,很多此类型input框都是禁 ...

  7. 基于Python语言使用RabbitMQ消息队列(二)

    工作队列 在第一节我们写了程序来向命名队列发送和接收消息 .在本节我们会创建一个工作队列(Work Queue)用来在多个工人(worker)中分发时间消耗型任务(time-consuming tas ...

  8. 用 Python 脚本实现对 Linux 服务器的监控

    目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...

  9. Python语言 介绍

    一.python介绍python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语 ...

随机推荐

  1. 一个用C++写的Json解析与处理库

    什么是Json?这个库能做什么? JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is e ...

  2. Windows Azure 社区新闻综述(#72 版)

    欢迎查看最新版本的每周综述,其中包含有关云计算和 Windows Azure的社区推动新闻.内容和对话. 以下是过去一周基于您的反馈汇集在一起的内容: 文章 ·   在 Windows Azure 移 ...

  3. Lua环境配置 windows + VS

    环境搭建: 首先从 http://www.lua.org/ftp/下载lua 源码, 我选择的是lua-5.1.5.tar.gz 我的开发环境是Win7+ VS2010 打开VS2010新建一个工程L ...

  4. 记userscripts.org

    发现一些Firefox用户脚本不起作用,userscripts.org访问不能有一个很长的一段时间,我还以为出了什么问题没出去检查.前几天有时间检查脚本,在路上,然后返回到userscripts.or ...

  5. ListView中响应item的点击事件并且刷新界面

    ---恢复内容开始--- 最近在在实现listview功能中遇到了这个问题: 点击事件写在了adapter的item中,不知道如何在listview的点击事件中更新数据的显示: 总结:1.要使用not ...

  6. entity framework 中一些常用的函数 转自http://www.cnblogs.com/williamzhu/

    一般查询 var Courses = db.Courses.Where(c => c.Title == "Physics").OrderBy(c => c.Title) ...

  7. 设置cell背景色半透明

    cell.backgroundColor = [UIColor colorWithRed:(247.0/255.0) green:(151.0/255.0) blue:(121.0/255.0) al ...

  8. 【微信公众号】使用a标签打开链接显示空白

    window.location.href 改成 top.location.href

  9. 浅谈JSP(一)

    一.JSP引言 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计.它是在传统的网页HTML文件(*.htm,*.html)中插入Java ...

  10. [Jobdu] 题目1517:链表中倒数第k个结点

    给出一个链表的头指针,要求找到倒数第k个节点,并输出这个节点的值 例子: 先看一个例子,链表为:1 2 3 4 5 6,倒数第2个节点就是5,倒数第一个节点就是6,以此类推.这里的链表有头节点,就是说 ...