python簡(jiǎn)單文本處理的方法
本文實(shí)例講述了python簡(jiǎn)單文本處理的方法。分享給大家供大家參考。具體如下:
由于有多線程的影響,c++項(xiàng)目打印出來(lái)的時(shí)間順序不一致,導(dǎo)致不太好在excel中統(tǒng)計(jì),故使用python寫(xiě)了段腳本來(lái)解決之。涉及到如下方面
1. txt文本的讀取,utf8的處理
2. 字符串的基本操作
3. dict的基本操作
4. list(數(shù)組)的基本操作
#!/usr/bin/python #print "Hello World" str_seperator = "==================================================================================" timePointName = ["enter OpenNextImage at",#0 "enter OpenImage at",#1 "In OpenImage send On_ImageRefresh at",#2 "leave OpenImage at",#3 "leave OpenNextImage at",#4 "enter LoadImage at",#5 "decode began at",#6 "enter DrawClient at",#7 "leave DrawClient at",#8 "decode end at",#9 "in LoadImage send On_ImageRefresh at",#10 "leave loadImage at",#11 "second enter DrawClient at",#12 "second leave DrawClient at" #13 ] itemNumber= 0; avgTotal = 0; #13-0 avgFirstDraw = 0; #8-2 avgLoadImage = 0; #11-5 avgSecondDraw = 0;#13-10 fobj = open("F:\log.txt","r") imageTimeSta = {} dic = {} path = "" idx = 0 for line in fobj: idx = idx + 1 if idx == 1: line = line[3:] else: pass line = line.strip() line = line.decode("utf-8").encode("gbk") if line == str_seperator: if path == "": pass else: imageTimeSta[path] = dic dic = {} path = "" continue tabIndex = line.find('\t') if tabIndex == -1: path = line print path continue tabLastIndex = line.rfind('\t') name = line[0:tabIndex] time = int(line[tabLastIndex + 1:]) if name in dic: dic["second " + name] = time else: dic[name] = time fobj.close() itemNumber = len(imageTimeSta) keys = imageTimeSta.keys(); for (k,dic) in imageTimeSta.iteritems(): avgTotal += dic[timePointName[13]] - dic[timePointName[0]]; avgFirstDraw += dic[timePointName[8]] - dic[timePointName[2]]; avgLoadImage += dic[timePointName[11]] - dic[timePointName[5]]; avgSecondDraw += dic[timePointName[13]] - dic[timePointName[10]]; print 'avgTotal',avgTotal / float(itemNumber) print 'avgFirstDraw',avgFirstDraw / float(itemNumber) print 'avgLoadImage',avgLoadImage / float(itemNumber) print 'avgSecondDraw',avgSecondDraw / float(itemNumber) #print imageTimeSta
log.txt文件如下:
enter OpenNextImage at 5124 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\2.JPG enter OpenImage at 5124 In OpenImage send On_ImageRefresh at 5124 enter LoadImage at 5124 leave OpenImage at 5124 leave OpenNextImage at 5124 decode began at 5124 enter DrawClient at 5140 leave DrawClient at 5155 decode end at 5265 in LoadImage send On_ImageRefresh at 5265 leave loadImage at 5265 enter DrawClient at 5280 leave DrawClient at 5327 ================================================================================== enter OpenNextImage at 6280 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\3.JPG enter OpenImage at 6280 In OpenImage send On_ImageRefresh at 6280 enter LoadImage at 6280 leave OpenImage at 6296 leave OpenNextImage at 6296 decode began at 6296 enter DrawClient at 6296 leave DrawClient at 6312 decode end at 6437 in LoadImage send On_ImageRefresh at 6437 enter DrawClient at 6437 leave loadImage at 6452 leave DrawClient at 6499 ================================================================================== enter OpenNextImage at 7265 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\4.JPG enter OpenImage at 7265 In OpenImage send On_ImageRefresh at 7265 leave OpenImage at 7265 leave OpenNextImage at 7265 enter LoadImage at 7265 decode began at 7265 enter DrawClient at 7265 leave DrawClient at 7296 decode end at 7421 in LoadImage send On_ImageRefresh at 7421 enter DrawClient at 7421 leave loadImage at 7437 leave DrawClient at 7483 ================================================================================== enter OpenNextImage at 8062 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\5.JPG enter OpenImage at 8062 In OpenImage send On_ImageRefresh at 8062 leave OpenImage at 8062 leave OpenNextImage at 8062 enter LoadImage at 8062 decode began at 8062 enter DrawClient at 8062 leave DrawClient at 8077 decode end at 8202 in LoadImage send On_ImageRefresh at 8202 enter DrawClient at 8202 leave DrawClient at 8265 leave loadImage at 8280 ================================================================================== enter OpenNextImage at 8811 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\6.JPG enter OpenImage at 8811 In OpenImage send On_ImageRefresh at 8811 leave OpenImage at 8811 leave OpenNextImage at 8811 enter LoadImage at 8811 decode began at 8811 enter DrawClient at 8811 leave DrawClient at 8843 decode end at 8968 in LoadImage send On_ImageRefresh at 8968 leave loadImage at 8968 enter DrawClient at 8968 leave DrawClient at 9030 ================================================================================== enter OpenNextImage at 9515 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\7.JPG enter OpenImage at 9515 In OpenImage send On_ImageRefresh at 9515 leave OpenImage at 9515 leave OpenNextImage at 9515 enter LoadImage at 9515 decode began at 9530 enter DrawClient at 9530 leave DrawClient at 9546 decode end at 9671 in LoadImage send On_ImageRefresh at 9671 enter DrawClient at 9671 leave loadImage at 9671 leave DrawClient at 9733 ================================================================================== enter OpenNextImage at 10171 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\8.JPG enter OpenImage at 10171 In OpenImage send On_ImageRefresh at 10171 leave OpenImage at 10171 leave OpenNextImage at 10171 enter LoadImage at 10171 decode began at 10186 enter DrawClient at 10186 leave DrawClient at 10202 decode end at 10311 in LoadImage send On_ImageRefresh at 10311 leave loadImage at 10311 enter DrawClient at 10311 leave DrawClient at 10374 ================================================================================== enter OpenNextImage at 10811 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\9.JPG enter OpenImage at 10811 In OpenImage send On_ImageRefresh at 10811 enter LoadImage at 10811 leave OpenImage at 10811 leave OpenNextImage at 10811 enter DrawClient at 10811 decode began at 10811 leave DrawClient at 10843 decode end at 10952 in LoadImage send On_ImageRefresh at 10952 leave loadImage at 10952 enter DrawClient at 10952 leave DrawClient at 11030 ================================================================================== enter OpenNextImage at 11452 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\10.JPG enter OpenImage at 11452 In OpenImage send On_ImageRefresh at 11452 leave OpenImage at 11452 leave OpenNextImage at 11452 enter LoadImage at 11452 decode began at 11452 enter DrawClient at 11468 leave DrawClient at 11483 decode end at 11593 in LoadImage send On_ImageRefresh at 11593 enter DrawClient at 11593 leave loadImage at 11608 leave DrawClient at 11655 ================================================================================== enter OpenNextImage at 12077 enter DrawClient at 12077 leave DrawClient at 12108 ================================================================================== enter OpenNextImage at 13124 D:\pics\測(cè)試圖片\解碼性能對(duì)比用圖\jpeg\較小圖\1.jpg enter OpenImage at 13124 In OpenImage send On_ImageRefresh at 13124 leave OpenImage at 13124 leave OpenNextImage at 13124 enter LoadImage at 13124 decode began at 13124 enter DrawClient at 13139 leave DrawClient at 13155 decode end at 13358 in LoadImage send On_ImageRefresh at 13358 leave loadImage at 13358 enter DrawClient at 13358 leave DrawClient at 13405 ==================================================================================
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python解決Fedora解壓zip時(shí)中文亂碼的方法
這篇文章給大家介紹了如何利用python解決Fedora解壓zip時(shí)中文亂碼的方法,對(duì)大家具有一定參考借鑒價(jià)值,有需要的朋友們可以參考學(xué)習(xí),下面來(lái)一起看看吧。2016-09-09深入探究Flask的兩個(gè)高級(jí)特性之藍(lán)圖和JWT認(rèn)證
本文將探討 Flask 的兩個(gè)高級(jí)特性:藍(lán)圖(Blueprints)和 JSON Web Token(JWT)認(rèn)證,藍(lán)圖讓我們可以將應(yīng)用模塊化,以便更好地組織代碼;而 JWT 認(rèn)證是現(xiàn)代 Web 應(yīng)用中常見(jiàn)的一種安全機(jī)制,感興趣的小伙伴跟著小編一起來(lái)看看吧2023-08-08python測(cè)試攻略pytest.main()隱藏利器實(shí)例探究
在Pytest測(cè)試框架中,pytest.main()是一個(gè)重要的功能,用于啟動(dòng)測(cè)試執(zhí)行,它允許以不同方式運(yùn)行測(cè)試,傳遞參數(shù)和配置選項(xiàng),本文將深入探討pytest.main()的核心功能,提供豐富的示例代碼和更全面的內(nèi)容,2024-01-01Windows下Anaconda和PyCharm的安裝與使用詳解
這篇文章主要介紹了Windows下Anaconda和PyCharm的安裝與使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04