博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python读取txt文件以空行作为数据的切分处理
阅读量:7031 次
发布时间:2019-06-28

本文共 1730 字,大约阅读时间需要 5 分钟。

先举个例子,如下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========================================

 思路总结:  按行循环读取数据, 当读取到换行符时(注意,换行符'\n'不等于空,切记), 作为一个切分点标记,可以把之前读取到的利用列表或字符串拼接构成一个整体,再使用正则进行数据提取, 当读取的书记为null是,自动结束循环; 上述代码要注意的一点就是txt文件最后有内容的一行后面需要再有两行换行,否则最后一条数据会读取丢失.

转载于:https://www.cnblogs.com/jason-Gan/p/10971393.html

你可能感兴趣的文章
chmod更改文件的权限
查看>>
oracle 10g/11g RAC 启停归档模式
查看>>
poj3461 Oulipo
查看>>
OAuth2.0学习(1-12)开源的OAuth2.0项目和比较
查看>>
Gitlab,这也就O了???
查看>>
2014 百度之星 1003 题解 Xor Sum
查看>>
Linux中在主机上实现对备机上文件夹及文件的操作的C代码实现
查看>>
iOS 块的简单理解
查看>>
idea中如何配置git以及在idea中初始化git
查看>>
关于JQuery Class选择器的一点
查看>>
POJ3264 Balanced Lineup
查看>>
redis-cli 连接远程服务器
查看>>
emlog通过pjax实现无刷新加载网页--完美解决cnzz统计和javascript失效问题
查看>>
sublime 之 vitage/emmet
查看>>
代码管理(四)SVN和Git对比
查看>>
python - hadoop,mapreduce demo
查看>>
mongodb常见管理命令
查看>>
1.7 以函数对象取代函数
查看>>
Vue过渡效果之JS过渡
查看>>
Android项目实战(三):实现第一次进入软件的引导页
查看>>