我有個文本內容,里面是多個主機的ping的按分鐘的結果,我的訴求是把多個主機ping的結果畫在同一張折線圖上。
每臺主機的ping的結果格式如下:
第一行是ip,以及可以ping通的標識,可以不要;
第二行是主機名;
后面是ping的結果
文本內容如下:
192.168.0.1 | success | rc=0 >>
MY_HOST_001
4,2020-11-04 00:02
10,2020-11-04 00:56
10 ,2020-11-04 00:58
40 ,2020-11-04 01:00
32 ,2020-11-04 01:02
250, 2020-11-04 01:06
2 ,2020-11-04 02:29
2, 2020-11-04 02:41
2, 2020-11-04 05:25
2 ,2020-11-04 07:43
8, 2020-11-04 08:06
2, 2020-11-04 09:10
2 ,2020-11-04 09:11
2 ,2020-11-04 10:21
2, 2020-11-04 10:24
2, 2020-11-04 10:48
2 ,2020-11-04 13:42
2 ,2020-11-04 13:55
4, 2020-11-04 14:32
192.168.0.2 | success | rc=0 >>
MY_HOST_002
2, 2020-11-04 00:29
4 ,2020-11-04 00:56
8, 2020-11-04 01:00
24 ,2020-11-04 01:02
210 ,2020-11-04 01:06
4, 2020-11-04 03:22
2 ,2020-11-04 04:19
4 ,2020-11-04 06:14
10, 2020-11-04 06:52
8 ,2020-11-04 06:53
2 ,2020-11-04 07:19
2 ,2020-11-04 09:09
2, 2020-11-04 10:18
2, 2020-11-04 12:17
6 ,2020-11-04 13:02
6, 2020-11-04 14:16
目前一臺主機的ping的結果圖畫腳本如下:
import matplotlib.pyplot as plt
file = open('ping.txt') #打開檔案
data = file.readlines() #讀取檔案資料
para_1 = [] #新建串列,用于保存第一列資料
para_2 = [] #新建串列,用于保存第二列資料
for num in data:
# split用于將每一行資料用逗號分割成多個物件
#取分割后的第2列添加到para_1串列中
para_1.append(num.split(',')[1])
#取分割后的第0列,轉換成float格式后添加到para_1串列中
para_2.append(float(num.split(',')[0]))
plt.figure()
plt.title('ping')
plt.plot(para_1, para_2)
plt.show()
請問腳本如何修改?請指點,多謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/269697.html
下一篇:python執行緒互斥鎖
