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的Flask框架下收发电子邮件的教程
Apr 21 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
使用pip安装python库的多种方式
Jul 31 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
TensorFlow打印输出tensor的值
Apr 19 Python
Python新手学习装饰器
Jun 04 Python
python实现二分类和多分类的ROC曲线教程
Jun 15 Python
使用K.function()调试keras操作
Jun 17 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遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
实现获取http内容的php函数分享
2014/02/16 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
setTimeout与setInterval在不同浏览器下的差异
2010/01/24 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
深入理解JavaScript 箭头函数
2019/05/30 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
Python代码缩进和测试模块示例详解
2018/05/07 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
python 进程的几种创建方式详解
2019/08/29 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
Python与C/C++的相互调用案例
2021/03/04 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
防沙治沙典型材料
2014/05/07 职场文书
庆六一开幕词
2015/01/29 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript