【毕设过程记录】:python批量提取txt文本中所需文本并写入excel

本文记录了一位作者使用Python进行毕设的过程,通过正则表达式从txt文本中提取特定内容,然后将这些数据整合到Excel数据框中。作者首先尝试了一行一行的提取方式,但未采用,最终采用正则表达式成功提取所需文本,并解决了提取过程中出现的重复问题。随后,作者将提取的数据添加到已有CSV数据框中,扩列并保存为新的CSV文件。
摘要由CSDN通过智能技术生成

1.提取txt文本

我想要的文本
我想要的文本是如图所示,宝可梦的外貌描述文本,由于原本的数据源结构并不是很稳定,而且也不是表格形式,因此在csdn上查了半天。

最原始的一行一行提取(不建议,未采用)

fi = open("D:\python_learning\data\data\Axew.txt","r",encoding="utf-8")
wflag =False                #写标记
newline = []                #创建一个新的列表


for line in fi :            #按行读入文件,此时line的type是str
    if "=" in line:        #重置写标记
        wflag =False
    if "原型剖析" in line:     #检验是否到了要写入的内容
        wflag = True
        continue
    if wflag == True:
        K = list(line)
        if len(K)>1:           #去除文本中的空行
            for i in K :       #写入需要内容
                newline.append(i)

strlist = "".join(newline)      #合并列表元素
newlines = str(strlist)         #list转化成str
print(newlines)
"""
for D in range(1,100):                       #删掉句中()
    newlines = newlines.replace("({})".format(D),"")

for P in range(0,9):                               #删掉前面数值标题
    for O in  range(0,9):
        for U in range(0, 9):
           newlines = newlines.replace("{}.{}{}".format(P,O,U), "")
fo.write(newlines)

fo.close()
fi.close()

"""

源代码为:将提取出的txt文本储存到另外一个txt中,跟我的需求不符合,因此注释掉了

正则表达式提取

由于txt文件打开后不是数据格式,因此先转为列表形式(一行是一个元素);再将列表元素合到一起,转为一个元素。
re.compile函数可以创建正则函数
pattern= re.compile(r’=栖息地=\n(.*?)\n==’, flags=re.DOTALL)
flags=re.DOTALL 这样找寻文本时可以跨行;

’=栖息地=\n(.*?)\n==’ 正则表达式表示只要小括号里面的以‘=栖息地=\n’开头,‘\n==’结尾的所有文本

pattern.findall函数可以在文本中找到符合正则函数的文本,但是莫名其妙会重复好多次,这个问题应该是我哪里写错了,但是因为实在没空纠结这个,所以直接用result=pattern.findall(f2)[0]来提取第一个。

path='D:\\python_learning\\data\\data\\'+df.iloc[0,3]+'.txt'
#为循环做准备
import re

f1=list(open(path,"r",encoding="utf-8"))#列表格式
f2="".join(f1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值