我的部落格已轉移至
最近,我需要將多客戶模擬器在執行中產生的一些資料記錄下來,同時使用適當
的方法(例如圖形化,還有。。。?)對其進行分析。
1. 日誌的記錄
python有乙個logging模組,可以用來產生日誌。
(1)學習資料
(2)我需要關注內容
logging模組提供了多種日誌級別,如:notset(0),debug(10),info(20),warning(30),warning(40),critical(50)。
設定方法:
logger = getlogger()
logger.serlevel(logging.debug)
使用formatter設定日誌的輸出格式。
設定方法:
logger = getlogger()
handler = loggingfilehandler(***)
formatter = logging.formatter("%(asctime)s %(levelname) %(message)s","%y-%m-%d,%h:%m:%s")
%(asctime)s表示記錄日誌寫入時間,"%y-%m-%d,%h:%m:%s「設定了時間的具體寫入格式。
%(levelname)s表示記錄日誌的級別。
%(message)s表示記錄日誌的具體內容。
def initlog():
logger = logging.getlogger()
handler = logging.filehandler("日誌儲存路徑")
formatter = logging.formatter("%(asctime)s %(levelname) %(message)s","%y-%m-%d,%h:%m:%s")
handler.setformatter(formatter)
logger.addhandler(handler)
logger.setlevel
logging.getlogger().info(), logging.getlogger().debug()......
2. 日誌的分析。
(1)我的日誌的內容。(log.txt)
2011-12-12,12:11:31 info client1: 4356175.0 1.32366309133e+12 1.32366309134e+12(2) 檔案操作以及字串的分析。2011-12-12,12:11:33 info client1: 4361320.0 1.32366309334e+12 1.32366309336e+12
2011-12-12,12:11:33 info client0: 4361320.0 1.32366309389e+12 1.32366309391e+12
2011-12-12,12:11:39 info client1: 4366364.0 1.32366309934e+12 1.32366309936e+12
2011-12-12,12:11:39 info client0: 4366364.0 1.32366309989e+12 1.32366309991e+12
2011-12-12,12:11:43 info client1: 4371416.0 1.32366310334e+12 1.32366310336e+12
2011-12-12,12:11:43 info client0: 4371416.0 1.32366310389e+12 1.32366310391e+12
2011-12-12,12:11:49 info client1: 4376450.0 1.32366310934e+12 1.32366310936e+12
我需要將上述內容逐行讀出,並將三個時間戳提取出來,然後將其圖形化。
file = file("日誌路徑",「r」)(3)將日誌圖形化。while true:
line = file.readline()
if len(len) == 0:
break;
print line
file.close()
字串操作學習資料:
從上面展示出來的日誌內容可見,主要資料都是用空格分隔,所以需要使用字串的
split函式對字串進行分割:
paralist = line.split(),該函式預設的分割符是空格,返回值為乙個list。
paralist[3], paralist[4], paralist[5]中分別以字串形式儲存著我需要的時間戳。
matplotlib是python的乙個繪相簿。我打算用它來將日誌圖形化。
對matplotlib的巨集觀介紹:
對matplotlib具體使用的詳細介紹:
在matplotlib中設定線條的顏色和形狀:
import matplotlib.pyplot as plt
listx = #儲存x軸資料
listy = #儲存y軸資料
listy1 = #儲存y軸資料
file = file("../log.txt","r")#開啟日誌檔案
while true:
line = file.readline()#讀取一行日誌
if len(line) == 0:#如果到達日誌末尾,退出
break
paralist = line.split()
print paralist[2]
print paralist[3]
print paralist[4]
print paralist[5]
if paralist[2] == "client0:": #在座標圖中新增兩個點,它們的x軸數值是相同的
file.close()
plt.plot(listx,listy,'bo-',listx,listy1,'ro')#畫圖
plt.title('tile')#設定所繪圖像的標題
plt.xlabel('time in sec')#設定x軸名稱
plt.ylabel('delays in ms'')#設定y軸名稱
plt.show()
python使用Qt製作簡單小視窗
pip install pyqt5 pip install pyqt5 tools pip install pyside2 安裝好以後可以通過檢視版本號,驗證是否安裝成功 pyqt5 v成功後可以到python安裝依賴包的目錄下檢視,並找到designer.exe 開啟 designer.exe 建...
python日誌的使用
1 日誌設定 1 import logging 23 global logger 設定全域性變數,涉及動態修改 4 g logdir d checkerpath logs 5 6def tearup 7 建立乙個logger 8global root logger 9global fh10 glob...
Python製作簡單的滑雪小遊戲
python版本 3.6.4 pygame模組 以及一些python自帶的模組。安裝python並新增到環境變數,pip安裝需要的相關模組即可。遊戲規則 玩家通過 ad 鍵或者 操控前進中的滑雪者,努力避開路上的樹,盡量撿到路上的小旗。如果碰到樹,則得分減50,如果撿到小旗子,則得分加10。逐步實現...