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求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 Python
python实现爬取图书封面
Jul 05 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
python爬取淘宝商品销量信息
Nov 16 Python
python random从集合中随机选择元素的方法
Jan 23 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
jenkins+python自动化测试持续集成教程
May 12 Python
python中selenium库的基本使用详解
Jul 31 Python
python中类与对象之间的关系详解
Dec 16 Python
Opencv+Python识别PCB板图片的步骤
Jan 07 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面向对象教程之自定义类
2014/06/10 PHP
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
Python数组条件过滤filter函数使用示例
2014/07/22 Python
对Python中range()函数和list的比较
2018/04/19 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
python对日志进行处理的实例代码
2018/10/06 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
python实现字典嵌套列表取值
2019/12/16 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
如何用python写个模板引擎
2021/01/14 Python
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
会计自我鉴定
2014/02/04 职场文书
法律系毕业生自荐信范文
2014/03/27 职场文书
党课心得体会范文
2014/09/09 职场文书
离婚协议书的范本
2015/01/27 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
Python+Tkinter打造签名设计工具
2022/04/01 Python