运用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语 ...
随机推荐
- gravitas是什么意思_gravitas在线翻译_英语_读音_用法_例句_海词词典
gravitas是什么意思_gravitas在线翻译_英语_读音_用法_例句_海词词典 gravitas
- javascript中对变量类型的推断
本文正式地址:http://www.xiabingbao.com/javascript/2015/07/04/javascript-type 在JavaScript中,有5种基本数据类型和1种复杂数据 ...
- 自定义通用Distinct去除重复数据的2中方式
由于Lambda Distinct方法默认是按照集合里面的值比较的,所以当集合里面存放的是类的时候,我们一般是按照实体中的某一属性值比较,其实是用默认的Distinct也可以的,自己先定义一个实现了接 ...
- 面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
题目:10. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输 ...
- javascriptDOM编程艺术_学习笔记_知识点 动态创建标记
传统技术:document.write 和 innerHTML 深入剖析DOM方法:createElement.createTextNode.appendChild 和 insertBefore ...
- 哈希长度扩展攻击的简介以及HashPump安装使用方法
哈希长度扩展攻击(hash length extension attacks)是指针对某些允许包含额外信息的加密散列函数的攻击手段.该攻击适用于在消息与密钥的长度已知的情形下,所有采取了 H(密钥 ∥ ...
- jQuery json数据处理
一种是使用jQuery的ajax函数 另一种是使用getJSON函数 使用ajax函数的时候 对于返回值类型dataType 亲自指定为json格式 就无需自己手动处理格式 $.ajax({ url ...
- docker4dotnet
docker4dotnet #1 – 前世今生 & 世界你好 作为一名.NET Developer,这几年看着docker的流行实在是有些眼馋.可惜的是,Docker是基于Linux环境的 ...
- xbox360版本之分
2005-11-22 发售精简版 (Core):白色 / 无硬盘 / 主板代号 Xenon(现已停产) 2005-11-22 发售豪华版 (Premium):白色 / 20 GB 硬盘 / 主板代号 ...
- 转;说说AngularJS中的$parse和$eval
说说AngularJS中的$parse和$eval AngularJS的初学者常常会对$parse和$eval两个内建服务感到有些困惑,今天我们就来说说AngularJS中的$parse和$eval. ...