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操作日期和时间的方法
Mar 11 Python
使用python实现strcmp函数功能示例
Mar 25 Python
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
python使用range函数计算一组数和的方法
May 07 Python
5种Python单例模式的实现方式
Jan 14 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
Python编程中对super函数的正确理解和用法解析
Jul 02 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
python如何重载模块实例解析
Jan 25 Python
django中ORM模型常用的字段的使用方法
Mar 05 Python
python学习开发mock接口
Apr 28 Python
Python实现加密接口测试方法步骤详解
Jun 05 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将向Java靠拢
2006/10/09 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
js 获取、清空input type="file"的值(示例代码)
2013/12/24 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python制作爬虫采集小说
2015/10/25 Python
python Django批量导入数据
2016/03/25 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
Python持续监听文件变化代码实例
2020/07/22 Python
英国著名书店:Foyles
2018/12/01 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
前台文员我鉴定
2014/01/12 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
十佳党员事迹材料
2014/08/28 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
防卫过当辩护词
2015/05/21 职场文书
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android