运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取
本文跟着上一篇文章继续写,上一篇文章的链接
运用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基本系统信息(二):文件系统使用情况获取的更多相关文章
- 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库
运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...
- Python语言编写BP神经网络
Python语言编写BP神经网络 2016年10月31日 16:42:44 ldy944758217 阅读数 3135 人工神经网络是一种经典的机器学习模型,随着深度学习的发展神经网络模型日益完善 ...
- 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本、内核、当前时间
申请博客有一段时间了,然而到现在还一篇没有写过..... 主要因为没有想到需要写些什么,最近在学习Python语言,照着书上看了看最基础的东西,发现根本看不进去,而且光看的话今天看了觉得都理解懂了,过 ...
- 用python语言编写网络爬虫
本文主要用到python3自带的urllib模块编写轻量级的简单爬虫.至于怎么定位一个网页中具体元素的url可自行百度火狐浏览器的firebug插件或者谷歌浏览器的自带方法. 1.访问一个网址 re= ...
- 使用python语言编写脚本控制freeswitch总结
1. 在Linux环境下已经安装了freeswitch,(没安装freeswitch,请安装说明文档) 2. 进入源代码目录 cd libs/esl 目录下 首先安装 yum install p ...
- Python语言编写脚本时,对日期控件的处理方式
对日期控件,日期控件的输入控一般是不能手动输入的:把readonly属性去掉就好 其实很简单,我们不去搞时间日期空间,我们把它当成一个普通的input框处理就好了! 但是,很多此类型input框都是禁 ...
- 基于Python语言使用RabbitMQ消息队列(二)
工作队列 在第一节我们写了程序来向命名队列发送和接收消息 .在本节我们会创建一个工作队列(Work Queue)用来在多个工人(worker)中分发时间消耗型任务(time-consuming tas ...
- 用 Python 脚本实现对 Linux 服务器的监控
目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...
- Python语言 介绍
一.python介绍python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语 ...
随机推荐
- Oracle的TPCC测试,原来也是个作弊的东西...
http://www.oaktable.net/content/sorted-hash-clusters-rip 根据Jonathan Lewis老先生的测试实例,发觉cluster 的sort功能, ...
- solaris 操作系统配置联网
1. 设置主机名: etc/hostname.vmxnet0 hannick 2.设置主机名和ip地址的映射: etc/hosts 127.0.0.1 localhost 192.108.1.123 ...
- Ordering Tasks(拓扑排序+dfs)
Ordering Tasks John has n tasks to do. Unfortunately, the tasks are not independent and the executio ...
- [poj 3159]Candies[差分约束详解][朴素的考虑法]
题意 编号为 1..N 的人, 每人有一个数; 需要满足 dj - di <= c 求1号的数与N号的数的最大差值.(略坑: 1 一定要比 N 大的...difference...不是" ...
- 理解Android的layout和measure
在Android UI开发中,总会有情况需要自定义View和View Group. 什么是View?就是Android中一个基本视图单位,一个Button是一个view, 一个Layout, 也是一个 ...
- 不是技术牛人,如何拿到国内IT巨头的Offer(1)
转自:http://developer.51cto.com/art/201404/436685.htm 不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰.看看这些牛人,N ...
- mvc模式jsp+servel+jdbc oracle基本增删改查demo
mvc模式jsp+servel+jdbc oracle基本增删改查demo 下载地址
- 【整理】Object-C中的属性(Property)的Setter:assign,copy,retain,weak,strong之间的区别和联系
iOS编程过程中,经常看到一些属性前面有些修饰符,比如copy,retain等. 这些关键字,是Object-C语言中,对于Property的setter. Mac官网: The Objective- ...
- 类中成员函数与数据成员private/pubic/protected
类中成员函数与数据成员private/pubic/protected
- UNIX/Linux-进程控制(实例入门篇)
UNIX进程 进程标识符 要想对进程控制,必须得获取进程的标识.每个进程都有一个非负整数表示的唯一进程ID,虽然是唯一的,但是进程ID可以重用.当一个进程终止后,其进程ID就可以再次使用了. 系统 ...