Step By Step使用Python分析AIX SNAP(3)——打开SNAP与写入Excel

当初为什么选择Python来做这件事,主要是因为Python有以下几个好处:

1.语法比较简单,容易快速上手

2.功能足够强大,有各种现成的模块,能快速实现各种功能

之前我们说过,要用Python实现数据的抓取和输出功能,抓取需要能读取SNAP文件,输出需要能把信息写到Excel表格中。为了实现这两部分功能,我们不需要写一堆代码,因为已经有现成的模块,我们只需要下载回来简单安装一下就好。

(1)读取SNAP

上一次我们提到过,SNAP文件其实是打包了两层,首先是以pax格式将所有文件打包成一个文件,然后再以Z模式压缩了一遍。所以我们直接查看的时候,需要解包两次才能看到那些文件。

对于Z模式的压缩,似乎由于专利限制之类的问题,我目前没有找到现成的Python模块可以去解压缩,如果有哪位知道,欢迎告诉我。

而对于pax的打包,则是跟tar格式类似,可以使用Python自带的tarfile模块去打开。

所以我们可以先利用解压缩软件,解开压缩,让snap.pax.Z解压为snap.pax,然后就可以利用Python处理了。

先给出一个例子example1

#! /usr/bin/env python
#coding=utf-8
#以上两句用于声明python的环境和使用utf-8编码

import tarfile #导入tarfile模块,用于打开pax包文件
snapfile = tarfile.open("snap.pax")

#打开pax文件,其中snapfile为包文件对象,“snap.pax”是pax包文件的文件名
adapter=snapfile.extractfile("./general/lsdev.adapter").read()

#解包并读取包内的“./general/lsdev.adapter”文件,内容保存在名为adapter的对象
outputfile=open("lsdev-adapter.txt",'w')

#选择输出文件,“lsdev-adapter.txt”是输出的文件名,‘w’表示写模式,文件对象名为outputfile
outputfile.write(adapter)

#将adapter对应的内容写入outputfile
outputfile.close()

#使用完,关闭outputfile

如果你已经安装了Python,那么把上面的内容复制到记事本,然后保存为“example1.py”(文件名无所谓,以py结尾即可),同目录下有一个snap.pax的文件。双击运行一下“example1.py”,你就会看到同目录下增加了一个lsdev-adapter.txt的文件,打开里面的内容,就是SNAP包中lsdev.adapter的内容。

以上去掉注释(#号开头的部分),真正的语句只有6句。是不是非常简单?

这可以当做一个小模板,比如你想输出snap.pax里的/general/lsdev.disk的内容,那么把前面程序里

adapter=snapfile.extractfile(“./general/lsdev.adapter”).read()

引号内的.general/lsdev.adapter 替换为./general/lsdev.disk即可,非常简单。

 

(2)输出到Excel文件

Python自带的模块没有读写Excel的功能,这就需要额外安装。

能实现该功能的模块有很多,我使用的是python-excel

它其实是由3个模块组成,xlrd,xlwt,xlutils

xlrd  用于读取Excel文件

xlwt 用于把数据写入Excel文件

xlutils 实现一些处理Excel文件的功能

官网 http://www.python-excel.org/ 不过因为挂在Google的服务上,所以结果你懂的……

好在不影响我们下载使用,以下地方都可以下载到

https://github.com/python-excel     (包括3个模块和使用说明)

https://pypi.python.org/pypi/xlrd   xlrd模块

https://pypi.python.org/pypi/xlwt  xlwt模块

https://pypi.python.org/pypi/xlutils/  xlutils模块

顺便说一句 https://pypi.python.org/pypi  这个网站相当于Python模块的大集合,绝大多数Python的模块都会在这里,Python是非常鼓励大家共享代码共享功能的,不必重复去造轮子。

由于我们这次是要把信息输出到Excel文件,因此需要用到xlwt模块。

安装这个模块有两种方式,一种方式是在上面的网站下载xlwt,会得到一个压缩包,解压缩之后,在解包的目录下面,会看到一个setup.py的文件,然后在该目录下执行命令(需要切换到命令提示符操作)

python setup.py install

等待安装完成即可,基本上其他的Python模块也都可以使用这样的安装方法

第二种方式更简单,直接在Python的安装目录下,执行命令(需要切换到命令提示符操作)

pip install xlwt

就可以了。不过这种方式容易出错,建议大家用第一种方式保险一些。

安装完成后,就可以使用这个模块向Excel文件写内容了。

以下是一个例子

#! /usr/bin/env python
#coding=utf-8

import xlwt     #导入xlwt模块

excelfile = xlwt.Workbook()
#创建一个工作薄,可以理解为一个Excel文件,取名为excelfile

table = excelfile.add_sheet(u"测试表")
#创建一个表,对应就是Excel文件中的一个Sheet,名为table

table.write(0,0,u"测试")
#向table表中第0行第0列的单元格中写入“测试”两个字,因为使用了中文,所以引号前面加u,表示unicode编码的字符串

table.write(0,1,u"成功")
#向table表中第0行第1列的单元格中写入“成功”两个字

excelfile.save("test.xls")
#将内容保存为文件名是test.xls的Excel文件

将以上内容保存为example2.py,双击运行后,就会在同目录下生成一个test.xls的Excel文件,打开后内容就是“测试”,“成功”。

可以看到,同样是只用了6条语句,就实现了最简单的把内容写入Excel文件。

下一次我们就讲讲如何把这两者结合,实现我们的SNAP分析功能

© 2015, szqp. 版权所有.

此条目发表在计算机与 Internet分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>