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搜索指定目录的方法
Apr 29 Python
python自动翻译实现方法
May 28 Python
python 读文件,然后转化为矩阵的实例
Apr 23 Python
python数字图像处理实现直方图与均衡化
May 04 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
Django Celery异步任务队列的实现
Jul 24 Python
python3实现带多张图片、附件的邮件发送
Aug 10 Python
Python使用os.listdir和os.walk获取文件路径
May 21 Python
python中np是做什么的
Jul 21 Python
python里glob模块知识点总结
Jan 05 Python
OpenCV全景图像拼接的实现示例
Jun 05 Python
Python保存并浏览用户的历史记录
Apr 29 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调试的强悍利器之PHPDBG
2016/02/22 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
php之可变变量的实例详解
2017/09/12 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
用python实现百度翻译的示例代码
2018/03/09 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
python实现人工蜂群算法
2020/09/18 Python
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
企业给企业的表扬信
2014/01/13 职场文书
竞聘上岗演讲
2014/05/19 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
教师理论学习心得体会
2016/01/21 职场文书
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs