來源:在工作過程中,需要統計一些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()