使用python进行简单的文本处理

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

涉及到如下方面
  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
==================================================================================