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程序设计有所帮助。