python读取txt文件以空行作为数据的切分处理,,先举个例子,如下te


先举个例子,如下test.txt文件数据,需要提取每条数据的title和content, 单独保存到文件中:

spiderTime:{‘num‘:‘12223‘}title:中国保险1xxxsummary: 请在xxxcontent: 当事人11sfdffghfhgfjjdtag:1spiderTime:{‘num‘:‘12224‘}title:中国保险2xxxsummary: 请在xxxcontent: 当事人22sfdfffdffghfjdtag:2spiderTime:{‘num‘:‘12225‘}title:中国保险3xxxsummary: 请在xxxcontent: 当事人33sfdffggghfjdtag:3

首先发现,数据是以空行作为分割点,所以,可以以空行拆分数据,做处理,具体代码如下:

with open(‘test.txt‘,‘r‘,encoding=‘utf8‘) as f:    cont = True    li = []    while cont:        cont = f.readline()        li.append(cont)        if cont ==‘\n‘:            print(li)            title = re.findall(r"\‘title:(.*?)\\n\‘\,", str(li))[0]            content = re.findall(r"\‘content:(.*?)\\n\‘\,", str(li))[0]            print(‘title: {}‘.format(title))            print(‘content: {}‘.format(content))            print(‘==‘ * 20)            li = []

上述代码中通过正则进行匹配title和content内容,如果它们在每条数据中的行号固定的话,简单些可以直接通过列表索引取值. 代码运行输出结果如下:

["spiderTime:{‘num‘:‘12223‘}\n", ‘title:中国保险1xxx\n‘, ‘summary: 请在xxx\n‘, ‘content: 当事人11sfdffghfhgfjjd\n‘, ‘tag:1\n‘, ‘\n‘]title: 中国保险1xxxcontent:  当事人11sfdffghfhgfjjd========================================["spiderTime:{‘num‘:‘12224‘}\n", ‘title:中国保险2xxx\n‘, ‘summary: 请在xxx\n‘, ‘content: 当事人22sfdfffdffghfjd\n‘, ‘tag:2\n‘, ‘\n‘]title: 中国保险2xxxcontent:  当事人22sfdfffdffghfjd========================================["spiderTime:{‘num‘:‘12225‘}\n", ‘title:中国保险3xxx\n‘, ‘summary: 请在xxx\n‘, ‘content: 当事人33sfdffggghfjd\n‘, ‘tag:3\n‘, ‘\n‘]title: 中国保险3xxxcontent:  当事人33sfdffggghfjd========================================

python读取txt文件以空行作为数据的切分处理

评论关闭