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多线程编程方式分析示例详解
Dec 06 Python
python相似模块用例
Mar 04 Python
详解Python迭代和迭代器
Mar 28 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 Python
python实现抖音点赞功能
Apr 07 Python
python读取ini配置文件过程示范
Dec 23 Python
基于Pytorch SSD模型分析
Feb 18 Python
基于python实现把json数据转换成Excel表格
May 07 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
Python爬虫网络请求之代理服务器和动态Cookies
Apr 12 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的memcached客户端memcached
2011/06/14 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
js跳转页面方法总结
2014/01/29 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
Python发展史及网络爬虫
2019/06/19 Python
Python替换月份为英文缩写的实现方法
2019/07/15 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
python使用Word2Vec进行情感分析解析
2020/07/31 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
python包的导入方式总结
2021/03/02 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
傲盾软件面试题
2015/08/17 面试题
师范院校学生自荐信范文
2013/12/27 职场文书
个人授权委托书范本
2014/04/03 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
java项目构建Gradle的使用教程
2022/03/24 Java/Android
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers