python實現(xiàn)根據(jù)指定字符截取對應的行的內(nèi)容方法
更新時間:2018年10月23日 10:06:19 作者:xqn2017
今天小編就為大家分享一篇python實現(xiàn)根據(jù)指定字符截取對應的行的內(nèi)容方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
工作中遇到的,在一個.c文件中有很多函數(shù),這個.c是自動生成的,需要將所有的函數(shù)通過extern放到.h中,每個函數(shù)都是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實現(xiàn)根據(jù)指定字符截取對應的行的內(nèi)容方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python學習——內(nèi)置函數(shù)、數(shù)據(jù)結構、標準庫的技巧(推薦)
這篇文章主要介紹了python學習——內(nèi)置函數(shù)、數(shù)據(jù)結構、標準庫的技巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04python自動化測試之DDT數(shù)據(jù)驅動的實現(xiàn)代碼
這篇文章主要介紹了python自動化測試之DDT數(shù)據(jù)驅動的實現(xiàn)代碼,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07Python實現(xiàn)快速排序和插入排序算法及自定義排序的示例
這篇文章主要介紹了Python實現(xiàn)快速排序和插入排序算法及自定義排序的示例,自定義排序用到了Python的sort和sorted函數(shù),需要的朋友可以參考下2016-02-02