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

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

spiderTime:{‘num‘:‘12223‘}
title:中国保险1xxx
summary: 请在xxx
content: 当事人11sfdffghfhgfjjd
tag:1

spiderTime:{‘num‘:‘12224‘}
title:中国保险2xxx
summary: 请在xxx
content: 当事人22sfdfffdffghfjd
tag:2

spiderTime:{‘num‘:‘12225‘}
title:中国保险3xxx
summary: 请在xxx
content: 当事人33sfdffggghfjd
tag: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: 中国保险1xxx
content:  当事人11sfdffghfhgfjjd
========================================
["spiderTime:{‘num‘:‘12224‘}\n", ‘title:中国保险2xxx\n‘, ‘summary: 请在xxx\n‘, ‘content: 当事人22sfdfffdffghfjd\n‘, ‘tag:2\n‘, ‘\n‘]
title: 中国保险2xxx
content:  当事人22sfdfffdffghfjd
========================================
["spiderTime:{‘num‘:‘12225‘}\n", ‘title:中国保险3xxx\n‘, ‘summary: 请在xxx\n‘, ‘content: 当事人33sfdffggghfjd\n‘, ‘tag:3\n‘, ‘\n‘]
title: 中国保险3xxx
content:  当事人33sfdffggghfjd
========================================

原文地址:https://www.cnblogs.com/jason-Gan/p/10971393.html

时间: 2024-12-12 17:18:35

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

Python读取txt文件

Python读取txt文件,有两种方式: (1)逐行读取 1 data=open("data.txt") 2 line=data.readline() 3 while line: 4 print line 5 line=data.readline() (2)一次全部读入内存 1 data=open("data.txt") 2 for line in data.readlines(): 3 print line

Python读取txt文件报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0

Python使用open读取txt中文内容的文件时,有可能会报错,报错内容如下:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0. 这里举一个例子:txt=open("threekingdoms.txt","r",encoding="utf-8").read(),在运行时就会报错. 要处理这个问题有两个办法,如下: 第一个办法,将编码方式由utf-8改为g

python 读取cvs 文件中多行数据

有的时候我们需要去读取多行多列数据 def duqu(): yiyuan = open('yiyuan_id2.csv','r') lines = yiyuan.readlines() yiyuan.close() for line in lines: id = line.split(',')[0] name = line.split(',')[1] print(id,name)duqu() 1.定义读取函数2.定义变量yiyuan,以只读的方式打开文件3.定义变量lines,通过读取多行数据赋

python读取txt、csv和excel文件

一.python读取txt文件:(思路:先打开文件,读取文件,最后用for循环输出内容) fp = open('test.txt','r') lines = fp.readlines() fp.close() for line in lines: username = line.split(',')[0] password = line.split(',')[1] 注:第一句是以只读方式打开文本文件:第二个是读取所有行的数据(read:读取整个文件:readline:读取一行数据):最后一定要关

Selenium+Python参数化:读取TXT文件

概述 从Selenium模块化一文中,可以看出参数化的必要性,本文来介绍下读取外部txt文件的方法. 如何打开文件 打开文件有以下两个函数可以应用: 1.open(file_name,access_mode) file_name: 文件路径及名称: access_mode :访问方式,具体参数如下,,未提供参数,则默认为r: r:表示读取: w:表示写入: a:表示添加: +: 表示读写: b:表示2进制访问; 2.file函数 file()内建函数它的功能等于open(),如下根据文档说明可知

Python读取SQLite文件数据

近日在做项目时,意外听说有一种SQLite的数据库,相比自己之前使用的SQL Service甚是轻便,在对数据完整性.并发性要求不高的场景下可以尝试! 1.SQLite简介: SQLite是一个进程内的库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它(如安卓系统),它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多

python操作txt文件中数据教程[1]-使用python读写txt文件

python操作txt文件中数据教程[1]-使用python读写txt文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果 程序实现 filename = './test/test.txt' contents = [] DNA_sequence = [] # 打开文本并将所有内容存入contents中 with open(filename, 'r') as f: for line in f.readlines(): contents.append(line

利用正则表达式读取txt文件中的邮箱,电话号码,url地址,手机号,将数据一行一个保存到一个新的文件中去

本人最近整合了从文本中提取信息,将之保存的新的文本中,在此处用到的是正则表达式,希望大家一起学习. 文件操作类:fileOperation.java package dyx_13; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.F

Javascript写入txt和读取txt文件的方法

文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Var fso=new ActiveXObject(Scripting.FileSystemObject); 创建一个可以将文件翻译成文件流的对象. 第二步:用于创建一个textStream 对象 括号里边有三个属性 1. 文件的绝对路径 2. 文件的常数 只读=1,只写=2 ,追加=8 等权限.(Fo