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的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
Jan 20 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
python编程线性回归代码示例
Dec 07 Python
详解python函数传参是传值还是传引用
Jan 16 Python
使用python生成目录树
Mar 29 Python
python实践项目之监控当前联网状态详情
May 23 Python
详解Python并发编程之从性能角度来初探并发编程
Aug 23 Python
Python笔记之代理模式
Nov 20 Python
Python-opencv 双线性插值实例
Jan 17 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 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下使用strpos需要注意 === 运算符
2010/07/17 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
详解在Python程序中自定义异常的方法
2015/10/16 Python
python安装与使用redis的方法
2016/04/19 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
七夕活动策划方案
2014/08/16 职场文书
见义勇为事迹材料
2014/12/24 职场文书
员工离职通知函
2015/04/25 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript