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 相关文章推荐
Python入门及进阶笔记 Python 内置函数小结
Aug 09 Python
python中xrange用法分析
Apr 15 Python
在Python中编写数据库模块的教程
Apr 29 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
Oct 25 Python
用python处理MS Word的实例讲解
May 08 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
python 将字符串中的数字相加求和的实现
Jul 18 Python
Pytorch之contiguous的用法
Dec 31 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
django实现模型字段动态choice的操作
Apr 01 Python
Python3通过chmod修改目录或文件权限的方法示例
Jun 08 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 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实现15位身份证号转18位的方法分析
2019/10/16 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
使用jquery实现简单的ajax
2013/07/08 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
原生JavaScrpit中异步请求Ajax实现方法
2017/11/03 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
Python常用随机数与随机字符串方法实例
2015/04/09 Python
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
使用tensorflow实现AlexNet
2017/11/20 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
PHP如何自定义函数
2016/09/16 面试题
生物技术毕业生自荐信
2013/10/23 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
国旗下的演讲稿
2014/05/08 职场文书
小区推广策划方案
2014/06/06 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js