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

2021-11-02 11:28:55 浏览数 (1)

涉及到如下方面

  1. txt文本的读取,utf8的处理
  2. 字符串的基本操作
  3. dict的基本操作
  4. list(数组)的基本操作
代码语言:javascript复制
#!/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</pre>


 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
==================================================================================</pre> 

0 人点赞