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 10 Python
使用tensorflow实现AlexNet
Nov 20 Python
selenium+python实现自动化登录的方法
Sep 04 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
Feb 15 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
Apr 02 Python
Python定时任务工具之APScheduler使用方式
Jul 24 Python
Django实现基于类的分页功能
Oct 31 Python
Python Django搭建网站流程图解
Jun 13 Python
python uuid生成唯一id或str的最简单案例
Jan 13 Python
Pandas的数据过滤实现
Jan 15 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 程序授权验证开发思路
2009/07/09 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
10 个经典PHP函数
2013/10/17 PHP
php文件下载处理方法分析
2015/04/22 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
wxPython学习之主框架实例
2014/09/28 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
python通过http下载文件的方法详解
2019/07/26 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
承办会议欢迎词
2014/01/17 职场文书
区三好学生主要事迹
2014/01/30 职场文书
财务部绩效考核方案
2014/05/04 职场文书
责任心演讲稿
2014/05/14 职场文书
绘画专业自荐信
2014/07/04 职场文书
个人四风对照检查材料
2014/09/26 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers