ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-09-17 18:53:56  阅读:184  来源: 互联网

标签:统计分析 EXE log python CMD ping 192.168 300


一、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()

 

标签:统计分析,EXE,log,python,CMD,ping,192.168,300
来源: https://www.cnblogs.com/hubangsheng/p/11536129.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有