python 文本处理 教程_python简单文本处理的方法

搜索热词

本文实例讲述了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-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\测试图片\解码性能对比用图\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\测试图片\解码性能对比用图\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\测试图片\解码性能对比用图\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\测试图片\解码性能对比用图\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\测试图片\解码性能对比用图\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\测试图片\解码性能对比用图\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\测试图片\解码性能对比用图\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\测试图片\解码性能对比用图\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\测试图片\解码性能对比用图\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\测试图片\解码性能对比用图\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

==================================================================================

希望本文所述对大家的Python程序设计有所帮助。

相关文章

总结

以上是编程之家为你收集整理的python简单文本处理的方法全部内容,希望文章能够帮你解决python简单文本处理的方法所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值