如何从一个文件特定段落中(文本文件),读取相关的文件信息,并进行分段梳理
来源:互联网 发布:印度为何越界知乎 编辑:程序博客网 时间:2024/05/16 18:43
在某个文件中,如何读取对应指定段落中的内容,并按照一定规则进行整理,本博客针对这个问题,进行简单梳理。
通过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))
***全文完***
- 如何从一个文件特定段落中(文本文件),读取相关的文件信息,并进行分段梳理
- Java 从一个文件中读取某一个特定的字符串
- FSO文本文件操作,读取一个文件相关信息$
- 从一个txt文件中读取文章并删除特定单词并显示文章
- 从文件中读取信息 并处理
- 从nand flash中读取wav文件的相关信息
- 从文件中读取学生成绩,进行等级划分,并输出至另外一个文件中
- #读取一个文件相关信息的范例
- 如何将一个大文件分段读取
- 如何从本地磁盘中读取一个文件,进行判断每个字符有多少个
- FSO读取一个文件相关信息的范例
- 代码回顾:从一个文本文件中读取一行的内容,进行数据处理。
- 最近写了一个从数据库中读取文件并写在txt文件中(当数据过多的时候写在多个txt文件中)
- C#如何从文本文件读取信息并使用ArrayList类向用户显示该信息
- VB从ini等文本文件中读取信息的方法
- 1、读取一个文件,并替换其中指定的字符串为特定字符串
- 求助,这样的文本文件如何读取出来并放在一个DataGrid控件中显示?
- 如何从JAR文件中读取文件
- 单链表的游标实现:插入、删除、查找、打印等功能
- openGl学习之基本图元
- android数据存储与访问之使用ContentProvider
- 51nod-1087 . 1 10 100 1000
- day52,page70
- 如何从一个文件特定段落中(文本文件),读取相关的文件信息,并进行分段梳理
- Spring的定时任务配置
- Android 编辑框问题
- C语言-学习心得(3)
- 对两个整数变量的值进行互换
- 2014-10-16
- MapReduce生成HFile入库到HBase
- 第三章 3.5.1节练习
- leetcode - Length of Last Word