Step By Step使用Python分析AIX SNAP(5)——批量处理多个文件

之前我们使用Python抓取信息,都是处理一个SNAP文件,而实际情况中,我们手上经常有多个SNAP文件需要处理,比如巡检或者信息统计。而同时处理多个文件,才能更大的发挥Python的威力。

我们在上次example4的基础上,加入一个循环,读取当前目录下的所有SNAP文件。

为了方便使用和扩展,我们把example4中的功能,定义为一个名为readsnap的函数。

另外,输出的格式,由于是需要输出多个文件的信息,因此我们把格式改为Excel表格一行输出一个文件的信息,每行的第一格输出Node Name,第二格输出CPU,第三格输出内存。

示例程序如下:

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

import tarfile
import xlwt

import os
import sys
import os.path
#导入以上模块用于获取当前路径及当前目录下的文件名

def readsnap(table,file,linenum):
snapfile = tarfile.open(file)
#打开snap.pax文件
lparinfo=snapfile.extractfile("./general/lparstat.out").readlines()
#读取snap.pax包中的/general/lparstat.out文件

for line in lparinfo:
#循环读取lparstat.out的内容,每个循环中的line表示一行
outputline=line.split(":")
#以":"为关键字去分隔line的内容

if line.find("Node Name")!=-1:
table.write(linenum,0,outputline[1].strip())
#将node name写入每行第一格
if line.find("Online Virtual CPUs")!=-1:
table.write(linenum,1,outputline[1].strip())
#将CPU数写入每行第二格
if line.find("Online Memory")!=-1:
table.write(linenum,2,outputline[1].strip())
#将memory数写入每行第二格

linenum=linenum+1
#行号加1
return linenum
#返回行号

#以上为定义函数readsnap()部分

excelfile = xlwt.Workbook()
table = excelfile.add_sheet(u"测试表")
#创建一个Excel表对象,并创建一个名为“测试表”的sheet

linenum=0
#定义表格行号从0开始

for dirpath, dirnames, filenames in os.walk('.'):
#循环读取当前路径文件名
for filename in filenames:
if os.path.splitext(filename)[1] == '.pax':
#如果文件扩展名为.pax
filepath = os.path.join(dirpath, filename)
print("file:" + filepath)
linenum=readsnap(table,filepath,linenum)
#调用readsnap函数

excelfile.save("test.xls")
#将内容保存在“test.xls"文件

输出结果类似如下:

 

SAS_C 5 47872 MB
ETLSER_B 3 16384 MB

 

© 2015, QP. 版权所有.

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇