运用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语 ...
随机推荐
- cocos2dx mac下搭建android开发环境
1)下载eclipse 地址:http://www.eclipse.org/downloads/ 2)安装adt 打开eclipse,菜单:help->install new software ...
- docker进入容器
进入容器的三种方式: sshd nsenter exec sshd 在容器中开启一个SSHD的服务,通过SSH的协议登录到容器中,把容器看出一个vm nsenter: nsenter包含在util-l ...
- 我的IOS学习之路(三):手势识别器
在iOS的学习中,对于手势的处理是极为重要的,如对于图片,我们经常需要进行旋转,缩放以及移动等.这里做一下总结,详见代码. - (void)viewDidLoad { [super viewDidLo ...
- button 变成圆
btn.layer.cornerRdius = width/2.0;btn.layer.maskToBounds = width/2.0:
- POJ 3630 Phone List(trie树的简单应用)
题目链接:http://poj.org/problem?id=3630 题意:给你多个字符串,如果其中任意两个字符串满足一个是另一个的前缀,那么输出NO,否则输出YES 思路:简单的trie树应用,插 ...
- js常用的一些正则验证文本框
只允许输入数字和-onKeyUp="value=value.replace(/[^-\d]/g,'')" onafterpaste="value=value.replac ...
- PHP输出中文乱码的解决方法
最近在windows上发现PHP程序中输出来的中文有乱码的情况. 看了很多帖子资料说可以在页面上添加: http://www.cnblogs.com/leandro/archive/2008/04/2 ...
- C中的正则函数sscanf
头文件 #include 定义函数 int sscanf (const char *str,const char * format,........); 函数说明 sscanf()会将参数str的字符 ...
- IOS 定位服务与地图的应用开发
1.定位服务 现在的移动设备很多都提供定位服务,IOS设备提供3种不同定位途径: (1)WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电:IPhone,IPod touch和IPad ...
- Qt 智能指针学习(7种QT的特有指针)
从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ #include <QApplication> #include <QLabel> int main(int arg ...