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 MysqlDb模块安装及其使用详解
Feb 23 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
python中virtualenvwrapper安装与使用
May 20 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
Python Django 命名空间模式的实现
Aug 09 Python
python list转置和前后反转的例子
Aug 26 Python
Window10下python3.7 安装与卸载教程图解
Sep 30 Python
tensorflow实现从.ckpt文件中读取任意变量
May 26 Python
使用Python pip怎么升级pip
Aug 11 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 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
收音机的保养
2021/03/01 无线电
世界上第一台立体声收音机
2021/03/01 无线电
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
js获取提交的字符串的字节数
2009/02/09 Javascript
jQuery chili图片远处放大插件
2009/11/30 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
2018/02/23 Python
基于python历史天气采集的分析
2019/02/14 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
2020/12/08 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
python中Pexpect的工作流程实例讲解
2021/03/02 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
温泉秘密:Onsen Secret
2020/07/06 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
英语专业学生个人求职信范文
2014/01/06 职场文书
酒店员工检讨书
2014/02/18 职场文书
学生个人自我鉴定
2014/03/26 职场文书
团队拓展活动总结
2014/08/27 职场文书
大学生入党群众意见书
2015/06/02 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python