python简单文本处理的方法
本文实例讲述了python简单文本处理的方法。分享给大家供大家参考。具体如下:
由于有多线程的影响,c++项目打印出来的时间顺序不一致,导致不太好在excel中统计,故使用python写了段脚本来解决之。涉及到如下方面
1.txt文本的读取,utf8的处理
2.字符串的基本操作
3.dict的基本操作
4.list(数组)的基本操作
#!/usr/bin/python #print"HelloWorld" str_seperator="==================================================================================" timePointName=["enterOpenNextImageat",#0 "enterOpenImageat",#1 "InOpenImagesendOn_ImageRefreshat",#2 "leaveOpenImageat",#3 "leaveOpenNextImageat",#4 "enterLoadImageat",#5 "decodebeganat",#6 "enterDrawClientat",#7 "leaveDrawClientat",#8 "decodeendat",#9 "inLoadImagesendOn_ImageRefreshat",#10 "leaveloadImageat",#11 "secondenterDrawClientat",#12 "secondleaveDrawClientat"#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 forlineinfobj: idx=idx+1 ifidx==1: line=line[3:] else: pass line=line.strip() line=line.decode("utf-8").encode("gbk") ifline==str_seperator: ifpath=="": pass else: imageTimeSta[path]=dic dic={} path="" continue tabIndex=line.find('\t') iftabIndex==-1: path=line printpath continue tabLastIndex=line.rfind('\t') name=line[0:tabIndex] time=int(line[tabLastIndex+1:]) ifnameindic: dic["second"+name]=time else: dic[name]=time fobj.close() itemNumber=len(imageTimeSta) keys=imageTimeSta.keys(); for(k,dic)inimageTimeSta.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) #printimageTimeSta
log.txt文件如下:
enterOpenNextImageat5124 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\2.JPG enterOpenImageat5124 InOpenImagesendOn_ImageRefreshat5124 enterLoadImageat5124 leaveOpenImageat5124 leaveOpenNextImageat5124 decodebeganat5124 enterDrawClientat5140 leaveDrawClientat5155 decodeendat5265 inLoadImagesendOn_ImageRefreshat5265 leaveloadImageat5265 enterDrawClientat5280 leaveDrawClientat5327 ================================================================================== enterOpenNextImageat6280 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\3.JPG enterOpenImageat6280 InOpenImagesendOn_ImageRefreshat6280 enterLoadImageat6280 leaveOpenImageat6296 leaveOpenNextImageat6296 decodebeganat6296 enterDrawClientat6296 leaveDrawClientat6312 decodeendat6437 inLoadImagesendOn_ImageRefreshat6437 enterDrawClientat6437 leaveloadImageat6452 leaveDrawClientat6499 ================================================================================== enterOpenNextImageat7265 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\4.JPG enterOpenImageat7265 InOpenImagesendOn_ImageRefreshat7265 leaveOpenImageat7265 leaveOpenNextImageat7265 enterLoadImageat7265 decodebeganat7265 enterDrawClientat7265 leaveDrawClientat7296 decodeendat7421 inLoadImagesendOn_ImageRefreshat7421 enterDrawClientat7421 leaveloadImageat7437 leaveDrawClientat7483 ================================================================================== enterOpenNextImageat8062 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\5.JPG enterOpenImageat8062 InOpenImagesendOn_ImageRefreshat8062 leaveOpenImageat8062 leaveOpenNextImageat8062 enterLoadImageat8062 decodebeganat8062 enterDrawClientat8062 leaveDrawClientat8077 decodeendat8202 inLoadImagesendOn_ImageRefreshat8202 enterDrawClientat8202 leaveDrawClientat8265 leaveloadImageat8280 ================================================================================== enterOpenNextImageat8811 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\6.JPG enterOpenImageat8811 InOpenImagesendOn_ImageRefreshat8811 leaveOpenImageat8811 leaveOpenNextImageat8811 enterLoadImageat8811 decodebeganat8811 enterDrawClientat8811 leaveDrawClientat8843 decodeendat8968 inLoadImagesendOn_ImageRefreshat8968 leaveloadImageat8968 enterDrawClientat8968 leaveDrawClientat9030 ================================================================================== enterOpenNextImageat9515 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\7.JPG enterOpenImageat9515 InOpenImagesendOn_ImageRefreshat9515 leaveOpenImageat9515 leaveOpenNextImageat9515 enterLoadImageat9515 decodebeganat9530 enterDrawClientat9530 leaveDrawClientat9546 decodeendat9671 inLoadImagesendOn_ImageRefreshat9671 enterDrawClientat9671 leaveloadImageat9671 leaveDrawClientat9733 ================================================================================== enterOpenNextImageat10171 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\8.JPG enterOpenImageat10171 InOpenImagesendOn_ImageRefreshat10171 leaveOpenImageat10171 leaveOpenNextImageat10171 enterLoadImageat10171 decodebeganat10186 enterDrawClientat10186 leaveDrawClientat10202 decodeendat10311 inLoadImagesendOn_ImageRefreshat10311 leaveloadImageat10311 enterDrawClientat10311 leaveDrawClientat10374 ================================================================================== enterOpenNextImageat10811 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\9.JPG enterOpenImageat10811 InOpenImagesendOn_ImageRefreshat10811 enterLoadImageat10811 leaveOpenImageat10811 leaveOpenNextImageat10811 enterDrawClientat10811 decodebeganat10811 leaveDrawClientat10843 decodeendat10952 inLoadImagesendOn_ImageRefreshat10952 leaveloadImageat10952 enterDrawClientat10952 leaveDrawClientat11030 ================================================================================== enterOpenNextImageat11452 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\10.JPG enterOpenImageat11452 InOpenImagesendOn_ImageRefreshat11452 leaveOpenImageat11452 leaveOpenNextImageat11452 enterLoadImageat11452 decodebeganat11452 enterDrawClientat11468 leaveDrawClientat11483 decodeendat11593 inLoadImagesendOn_ImageRefreshat11593 enterDrawClientat11593 leaveloadImageat11608 leaveDrawClientat11655 ================================================================================== enterOpenNextImageat12077 enterDrawClientat12077 leaveDrawClientat12108 ================================================================================== enterOpenNextImageat13124 D:\pics\测试图片\解码性能对比用图\jpeg\较小图\1.jpg enterOpenImageat13124 InOpenImagesendOn_ImageRefreshat13124 leaveOpenImageat13124 leaveOpenNextImageat13124 enterLoadImageat13124 decodebeganat13124 enterDrawClientat13139 leaveDrawClientat13155 decodeendat13358 inLoadImagesendOn_ImageRefreshat13358 leaveloadImageat13358 enterDrawClientat13358 leaveDrawClientat13405 ==================================================================================
希望本文所述对大家的Python程序设计有所帮助。