在某个文件中,如何读取对应指定段落中的内容,并按照一定规则进行整理,本博客针对这个问题,进行简单梳理。
通过Python进行实现,非常的方便。
例如某个文件的内容如下 (FileName):
***test case****
Add_New_Context
Click_New_Context
Add_Name ${Name}
Add_Phone ${Number}
Click_Save
Find_Context
Input_Name ${Name}
Click_OK
**keyword***
Click_New_Context
Open(Context)
需要分别读取对应Test Case 下和 KeyWord 下面的所有内容,并进行分段标记。
可以先定义一个函数 FindMessageBlock(FileName, StartKeywords, EndKeyWords)。
其中:FileName 指,需要读取的某个特点文件。
StartKeywords 指,特定段落开始的关键字。
EndKeyWords 指,特定段落结束的关键字,如果没有文件中没有结束关键字,默认到最后一行。
实现如下:
def FindMessageBlock(FileName, StartKeywords, EndKeyWords):
try:
FileOpen=open(FileName, 'r')
except:
print ("open file error")
return []
FileContext=FileOpen.readlines()
LineNum=0
FirstLineNum=0
FindEndKeyFlag=0
EndLineNum=len(FileContext)
for LineContext in FileContext:
LineNum+=1
if 0==LineContext.find(StartKeywords):
FirstLineNum=LineNum
break
for LineContext in FileContext[LineNum:] :
LineNum+=1
if 0==LineContext.find(EndKeyWords):
EndLineNum=LineNum
FindEndKeyFlag=1
break
if FirstLineNum==0:
return []
# get the message block from FirstLineNum:EndLineNum
MessageFirstLineNum=FirstLineNum
if FindEndKeyFlag==1:
MessageEndLineNum=EndLineNum-1
else:
MessageEndLineNum=EndLineNum
FirstGetMessageFlag=1
MessageBlockList=[]
LineNum=FirstLineNum
for MessageLineContext in FileContext[FirstLineNum:EndLineNum-1] :
LineNum+=1
if 0!=MessageLineContext.find(" ", 0, 4) and 1==FirstGetMessageFlag:
MessageBlock=[MessageLineContext,LineNum, MessageEndLineNum]
FirstGetMessageFlag=0
MessageBlockList.append(MessageBlock)
continue
if 0!=MessageLineContext.find(" ", 0, 4) and 0==FirstGetMessageFlag:
MessageBlockList[len(MessageBlockList)-1][2]=LineNum-1
MessageBlock=[MessageLineContext,LineNum, MessageEndLineNum]
MessageBlockList.append(MessageBlock)
if len(MessageBlockList)==0:
return []
if len(MessageBlockList)==1 and '\n'==MessageBlockList[0][0]:
return []
if '\n'==MessageBlockList[len(MessageBlockList)-1][0] :
#remove the last space line
MessageBlockList=MessageBlockList[:(len(MessageBlockList)-1)]
return MessageBlockList
实验一下,用下面实验一下即可。
Start="**keyword"
End="***test case*"
a=FindMessageBlock(File, Start, End)
print(str(a))
b=FindMessageBlock(File, End, Start)
print(str(b))
***全文完***