python简单文本处理的方法
作者:speedmancs 发布时间:2023-08-31 12:33:01
标签: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程序设计有所帮助。


猜你喜欢
- 现在很多以内容为核心的网站上都在文章底部添加了社会化分享按钮,能让浏览用户在发现一篇有价值的文章时,可以通过社会化网络快速分享给自己的好友,
- 1、事件冒泡:在javascript事件传播过程中,当事件在一个元素上出发之后,事件会逐级传播给先辈元素,直到document为止,有的浏览
- (一)ts文件下载网页文件下载其实都可以通过requests.get以文件流的形式获取,并以字节的形式写入本地文件即可。代码如下:impor
- 本文实例讲述了MySQL基于DOS命令行登录操作方法。分享给大家供大家参考,具体如下:常用的MySQL命令行登录语句如下:mysql -h
- 拆出主板今天带大家看一下怎么用 Go 写工厂模式的代码,我们来学习一个实战案例。这个写法笔者日常经常使用,能够很有效地帮助大家实现 Sepa
- 本文实例为大家分享了python抓取网页中链接的静态图片的具体代码,供大家参考,具体内容如下# -*- coding:utf-8 -*- #
- 将解压文件放置C盘配置环境变量 Patch:C:\mysql-5.7.25-winx64\bin;安装mysql切换到bin目录 cd C:
- 由于存在函数内部不能访问全局作用的,所以就需要一种可以引入上一级作用域的语法结构,可以通过use使用函数声明时所在作用域的变量的值。php的
- 轮播图功能安装依赖模块图片处理模块pip install pillow上传文件相关配置由于我们需要在后台上传我们的轮播图图片,所以我们需要在
- 概述从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类
- 编号标准宗地编码(landCode)所在区段编码(sectCode)1131001BG001G0012131001BG002G0013131
- 本文实例讲述了Python将阿拉伯数字转换为罗马数字的方法。分享给大家供大家参考。具体实现方法如下:def numToRomanNum(Nu
- 在Linux或者Windows下想要查看目录树都可以通过tree命令来实现,两个操作系统中的操作也很相似。使用Linux时,最初以为这是sh
- 有几个原因促使我们使用自定义的select控件来代替原生的select控件:在ie6下select是一个窗口级的元素,绝对定位的层会被sel
- asyncio的关键字说明event_loop事件循环:程序开启一个无限循环,把一些函数注册到事件循环上,当满足事件发生的时候,调用相应的协
- forEaches5出来的方法,这是我在react中用的最多的遍历方法之一,用法如下:models.forEach(model =>
- 首先水仙花数是什么?水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital inv
- python数组添加整行或整列代码如下,见注释:import numpy as npm_list=[[1,2,3],[3,4,5]]m_ar
- TEMPLATESDjango 1.8的新特性一个列表,包含所有在Django中使用的模板引擎的设置。列表中的每一项都是一个字典,包含某个引
- 用来批量切割视频的开头部分,比如去掉一部电视剧的序幕,看着难受不说数量还很多,很菜鸟的一篇,毕竟我也是一个菜鸟,首先要有ffmpeg这个软件