python簡單文本處理的方法

來源:互聯網
上載者:User
本文執行個體講述了python簡單文本處理的方法。分享給大家供大家參考。具體如下:

由於有多線程的影響,c++項目列印出來的時間順序不一致,導致不太好在excel中統計,故使用python寫了段指令碼來解決之。涉及到如下方面

1. txt文本的讀取,utf8的處理
2. 字串的基本操作
3. dict的基本操作
4. list(數組)的基本操作

#!/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-0avgFirstDraw = 0; #8-2avgLoadImage = 0; #11-5avgSecondDraw = 0;#13-10fobj = open("F:\log.txt","r")imageTimeSta = {}dic = {}path = ""idx = 0for 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] = timefobj.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  5124D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\2.JPGenter OpenImage at  5124In OpenImage send On_ImageRefresh at  5124enter LoadImage at  5124leave OpenImage at  5124leave OpenNextImage at  5124decode began at  5124enter DrawClient at  5140leave DrawClient at  5155decode end at  5265in LoadImage send On_ImageRefresh at  5265leave loadImage at  5265enter DrawClient at  5280leave DrawClient at  5327==================================================================================enter OpenNextImage at  6280D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\3.JPGenter OpenImage at  6280In OpenImage send On_ImageRefresh at  6280enter LoadImage at  6280leave OpenImage at  6296leave OpenNextImage at  6296decode began at  6296enter DrawClient at  6296leave DrawClient at  6312decode end at  6437in LoadImage send On_ImageRefresh at  6437enter DrawClient at  6437leave loadImage at  6452leave DrawClient at  6499==================================================================================enter OpenNextImage at  7265D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\4.JPGenter OpenImage at  7265In OpenImage send On_ImageRefresh at  7265leave OpenImage at  7265leave OpenNextImage at  7265enter LoadImage at  7265decode began at  7265enter DrawClient at  7265leave DrawClient at  7296decode end at  7421in LoadImage send On_ImageRefresh at  7421enter DrawClient at  7421leave loadImage at  7437leave DrawClient at  7483==================================================================================enter OpenNextImage at  8062D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\5.JPGenter OpenImage at  8062In OpenImage send On_ImageRefresh at  8062leave OpenImage at  8062leave OpenNextImage at  8062enter LoadImage at  8062decode began at  8062enter DrawClient at  8062leave DrawClient at  8077decode end at  8202in LoadImage send On_ImageRefresh at  8202enter DrawClient at  8202leave DrawClient at  8265leave loadImage at  8280==================================================================================enter OpenNextImage at  8811D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\6.JPGenter OpenImage at  8811In OpenImage send On_ImageRefresh at  8811leave OpenImage at  8811leave OpenNextImage at  8811enter LoadImage at  8811decode began at  8811enter DrawClient at  8811leave DrawClient at  8843decode end at  8968in LoadImage send On_ImageRefresh at  8968leave loadImage at  8968enter DrawClient at  8968leave DrawClient at  9030==================================================================================enter OpenNextImage at  9515D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\7.JPGenter OpenImage at  9515In OpenImage send On_ImageRefresh at  9515leave OpenImage at  9515leave OpenNextImage at  9515enter LoadImage at  9515decode began at  9530enter DrawClient at  9530leave DrawClient at  9546decode end at  9671in LoadImage send On_ImageRefresh at  9671enter DrawClient at  9671leave loadImage at  9671leave DrawClient at  9733==================================================================================enter OpenNextImage at  10171D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\8.JPGenter OpenImage at  10171In OpenImage send On_ImageRefresh at  10171leave OpenImage at  10171leave OpenNextImage at  10171enter LoadImage at  10171decode began at  10186enter DrawClient at  10186leave DrawClient at  10202decode end at  10311in LoadImage send On_ImageRefresh at  10311leave loadImage at  10311enter DrawClient at  10311leave DrawClient at  10374==================================================================================enter OpenNextImage at  10811D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\9.JPGenter OpenImage at  10811In OpenImage send On_ImageRefresh at  10811enter LoadImage at  10811leave OpenImage at  10811leave OpenNextImage at  10811enter DrawClient at  10811decode began at  10811leave DrawClient at  10843decode end at  10952in LoadImage send On_ImageRefresh at  10952leave loadImage at  10952enter DrawClient at  10952leave DrawClient at  11030==================================================================================enter OpenNextImage at  11452D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\10.JPGenter OpenImage at  11452In OpenImage send On_ImageRefresh at  11452leave OpenImage at  11452leave OpenNextImage at  11452enter LoadImage at  11452decode began at  11452enter DrawClient at  11468leave DrawClient at  11483decode end at  11593in LoadImage send On_ImageRefresh at  11593enter DrawClient at  11593leave loadImage at  11608leave DrawClient at  11655==================================================================================enter OpenNextImage at  12077enter DrawClient at  12077leave DrawClient at  12108==================================================================================enter OpenNextImage at  13124D:\pics\測試圖片\解碼效能對比用圖\jpeg\較小圖\1.jpgenter OpenImage at  13124In OpenImage send On_ImageRefresh at  13124leave OpenImage at  13124leave OpenNextImage at  13124enter LoadImage at  13124decode began at  13124enter DrawClient at  13139leave DrawClient at  13155decode end at  13358in LoadImage send On_ImageRefresh at  13358leave loadImage at  13358enter DrawClient at  13358leave DrawClient at  13405==================================================================================

希望本文所述對大家的Python程式設計有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.