python实现根据指定字符截取对应的行的内容方法


Posted in Python onOctober 23, 2018

工作中遇到的,在一个.c文件中有很多函数,这个.c是自动生成的,需要将所有的函数通过extern放到.h中,每个函数都是UINT32 O_开头,通过正则表达式进行字符匹配以及通过linecache来截取特定行。

代码如下:

#! /usr/bin/env python
# encoding:utf-8
# ! /usr/bin/env python
# encoding:utf-8
import re
import linecache
file = 'D:\PUSCH_job3.txt'
outfile = 'D:\outfile3.txt'
lineNumber = 1
with open(file,'r') as f:
	number = []
	for line in f.readlines():
		m = re.findall(r"UINT32 O_\w+",line) #匹配含有字符'UINT32 O_'的行
		if m:
			number.append(lineNumber)
		n = re.findall(r"OUT \w+",line) #假设只有一个OUT
		if n:
			number.append(lineNumber)
		lineNumber += 1
	with open(outfile, 'w+') as f_w:
		for j in range(len(number)):
			if j%2 == 0:
				start = number[j]
				end = number[j+1]
				destlines = linecache.getlines(file)[start-1:end] #截取start-end行的字符,不包括start-1,但包含end行
				f_w.write('extern ')
				for i in range(len(destlines)):
					if i != len(destlines)-1:
						f_w.write(destlines[i])
					else:
						f_w.write(destlines[i].replace('\n',';\n'))
				f_w.write('\n')

输入:

UINT32 O_FUNC1(UINT32 uwA,
IN UINT32 uwB,
IN UINT32* puwC,
IN UINT32* puwD,
OUT UINT32* puwE)
{
 //
}

输出:

extern UINT32 O_FUNC1(UINT32 uwA,
IN UINT32 uwB,
IN UINT32* puwC,
IN UINT32* puwD,
OUT UINT32* puwE);

以上这篇python实现根据指定字符截取对应的行的内容方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
Python实现钉钉订阅消息功能
Jan 14 Python
python3.6连接mysql数据库及增删改查操作详解
Feb 10 Python
Python实现井字棋小游戏
Mar 09 Python
python自动下载图片的方法示例
Mar 25 Python
不到20行实现Python代码即可制作精美证件照
Apr 24 Python
在TensorFlow中实现矩阵维度扩展
May 22 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
python中正则表达式 re.findall 用法
Oct 23 #Python
python 实现批量xls文件转csv文件的方法
Oct 23 #Python
python 把列表转化为字符串的方法
Oct 23 #Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 #Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 #Python
python 拼接文件路径的方法
Oct 23 #Python
python 将列表中的字符串连接成一个长路径的方法
Oct 23 #Python
You might like
php支付宝手机网页支付类实例
2015/03/04 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
Vue异步组件处理路由组件加载状态的解决方案
2018/09/07 Javascript
vue下载excel的实现代码后台用post方法
2019/05/10 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
Python 控制终端输出文字的实例
2019/07/12 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
专科毕业生就业推荐信
2013/11/01 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
中学生操行评语大全
2014/04/24 职场文书
母亲节演讲稿
2014/05/27 职场文书
数学系毕业生求职信
2014/05/29 职场文书
四风问题查摆材料
2014/08/25 职场文书
政协会议宣传标语
2014/10/09 职场文书
幼儿园教师求职信
2015/03/20 职场文书
2016年学校招生广告语
2016/01/28 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript