來源:在工作過程中,需要統計一些trace信息,也就是一些打點信息,而打點是通過關鍵字進行的,因此對一個很大的文件進行分析時,想把兩個打點之間的內容單獨拷貝出來進行分析
#!/usr/bin/env python
#__*__ coding: utf-8 __*__
import re
import linecache
def fileParse():
inputfile = input('Input SourcFile:') ##輸入源文件,如A.txt
fp = open(inputfile, 'r')
number =[]
lineNumber = 1
keyword = input('Slice Keyword:') ##輸入你要切分的關鍵字
outfilename = input('Outfilename:')##輸出文件名,如out.txt則寫out即可,后續輸出的文件是out0.txt,out1.txt...
for eachLine in fp:
m = re.search(keyword, eachLine) ##查詢關鍵字
if m is not None:
number.append(lineNumber) #將關鍵字的行號記錄在number中
lineNumber = lineNumber + 1
size = int(len(number))
for i in range(0,size-1):
start = number[i]
end = number[i+1]
destLines = linecache.getlines(inputfile)[start+1:end-1] #將行號為start+1到end-1的文件內容截取出來
fp_w = open(outfilename + str(i)+'.txt','w') #將截取出的內容保存在輸出文件中
for key in destLines:
fp_w.write(key)
fp_w.close()
if __name__ == "__main__":
fileParse()
