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实现配置文件备份的方法
Jul 30 Python
Python利用operator模块实现对象的多级排序详解
May 09 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
解决vscode python print 输出窗口中文乱码的问题
Dec 03 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
python使用requests模块实现爬取电影天堂最新电影信息
Apr 03 Python
django 环境变量配置过程详解
Aug 06 Python
PyCharm更改字体和界面样式的方法步骤
Sep 27 Python
基于python traceback实现异常的获取与处理
Dec 13 Python
django实现模型字段动态choice的操作
Apr 01 Python
Anaconda的安装与虚拟环境建立
Nov 18 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
2013/01/20 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
python适合人工智能的理由和优势
2019/06/28 Python
pytorch中的inference使用实例
2020/02/20 Python
django之导入并执行自定义的函数模块图解
2020/04/01 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
劳资员岗位职责
2013/11/11 职场文书
护士求职推荐信范文
2013/11/23 职场文书
化验室技术员岗位职责
2013/12/24 职场文书
会计学专业学生的求职信范文
2014/01/27 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
python本地文件服务器实例教程
2021/05/02 Python
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang