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 文件和输入输出小结
Oct 09 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
Apr 14 Python
python操作redis的方法
Jul 07 Python
Python 含参构造函数实例详解
May 25 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
Python高斯消除矩阵
Jan 02 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
Python 实现数组相减示例
Dec 27 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
python 多线程爬取壁纸网站的示例
Feb 20 Python
Python中的嵌套循环详情
Mar 23 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
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
python开发之str.format()用法实例分析
2016/02/22 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
Python map及filter函数使用方法解析
2020/08/06 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
商务日语毕业生自荐信范文
2013/11/14 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书