ping包测试内容写入文件,并使用python对相应的结果进行统计分析

一、ping包测试内容写入log文件,bat脚本如下:

@ECHO OFF
%~d0
cd %cd%\
start CMD.EXE /C "ping.exe 192.168.1.21  >>1.21.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.45  >>1.45.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.77  >>1.77.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.79  >>1.79.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.114 >>1.114.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.120 >>1.120.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.121 >>1.121.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.113 >>1.113.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.116 >>1.116.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.119 >>1.119.log" -n 300
start CMD.EXE /C "ping.exe 192.168.1.117 >>1.117.log" -n 300

二、对生成的.Log文件进行分析并将数据存储到excel中,代码如下:

import re,os,time
import xlwt
import os

#获取当前文件夹下扩展名为.log的文件名列表
def readFileList():
    items = os.listdir(".")
    newList = []
    for names in items:
      if names.endswith(".log"):
        newList.append(names)
    return newList

#获取log文件中的统计信息
def readMsg(file):
    #for i in fileList:
    f = open(file,'r')
    fileMsg = f.readlines()
    ipMatch2 = re.search(r'(([01]?\d?\d|2[0-4]\d|25[0-5]\d)\.){3}([01]?\d?\d|2[0-4]\d|25[0-5]\d)', fileMsg[-2])
    if ipMatch2==None:
        ipMatch = re.search(r'(([01]?\d?\d|2[0-4]\d|25[0-5]\d)\.){3}([01]?\d?\d|2[0-4]\d|25[0-5]\d)',fileMsg[-4])
        IP = ipMatch.group()
        #print(IP)
        dataPackage = fileMsg[-3:-2][0].strip('\n').replace(" ","")
        dataPackageClient = dataPackage.split('')[0].split(':')[1]
        dataPackageSever = dataPackage.split('')[1]
        dataPackageLose = dataPackage.split('')[2]
        #print(dataPackage)
        delayTime = fileMsg[-1].strip('\n').replace(" ","")
        delayTimeMin = delayTime.split('')[0]
        delayTimeMax = delayTime.split('')[1]
        delayTimeAvg = delayTime.split('')[2]
        #print(delayTime)
    else:
        IP = ipMatch2.group()
        dataPackageClient = 'ping fail'
        dataPackageSever = None
        dataPackageLose = None
        delayTimeMin = None
        delayTimeMax = None
        delayTimeAvg = None
        #print(IP)
        #print("ping fail")
    return [IP, dataPackageClient,dataPackageSever,dataPackageLose,delayTimeMin,delayTimeMax,delayTimeAvg]
    #print('---------------------------------------')

#将得到的统计信息写入到excel表格中
def writeData():
    newTable = 'ping.xls'
    wb = xlwt.Workbook(encoding='utf-8')
    ws = wb.add_sheet('ping', cell_overwrite_ok=True)  # 创建表
    headData = ['IP', '已发送','已接收','丢失','最短','最长','平均']
    for colnum in range(0, 7):
        ws.write(0, colnum, headData[colnum], xlwt.easyxf('font:bold on'))
    index = 1
    for i in range(len(dataMsg)):   #excel的列数
        for j in range(0,7):        #excel的行数
        # print RSSIt[i]
            ws.write(index, j, dataMsg[i][j])
        index += 1
    wb.save(newTable)

if __name__ == '__main__':
    fileList = readFileList()
    print(fileList)
    dataMsg = []
    for file in fileList:
        dataMsg.append(readMsg(file))
    print(dataMsg)
    writeData()

猜你喜欢

转载自www.cnblogs.com/hubangsheng/p/11536129.html