python實現根據指定字元擷取對應的行的內容

2021-08-09 05:31:24 字數 1426 閱讀 3079

工作中遇到的,在乙個.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:

n = re.findall(r"out \w+",line) #假設只有乙個out

if n:

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);

根據指定視窗控制代碼進行截圖

1 獲取視窗控制代碼 見2 截圖函式 包含截圖類和呼叫示例 screen.h標頭檔案如下 ifndef cscreen h define cscreen h include class cscreen hdc createdc display null,null,null 使用指定的名字為乙個裝置建...

python實現截竹竿

截竹竿,32公尺竹竿,每次擷取1.5m,至少擷取幾次之後剩餘竹竿不足4m import math def examplebam01 longm,secm,lastm 求出最大可以擷取多少次 由於擷取到最後一段時可以不用截,所以擷取要減1 通過math函式求出如果有小數直接進製 math.ceil 向...

python 實現的截圖工具

新增了透視裁剪工具 類似於ps裡的用法 多邊形截圖工具 取色器工具 油漆桶工具 背景還原畫筆 配合背景橡皮擦使用 支援回退10步操作歷史記錄 新增一鍵還原按鈕 新增智慧型選框的開關。畫筆等增加透明度支援,在畫筆 標記時可以通過按住ctrl鍵 滾輪快速調整畫筆透明度,新增常用顏色到取色按鈕 滑鼠劃過即...