NO.55 规则文本内容转excel表格
评论
收藏

NO.55 规则文本内容转excel表格

经验分享
云潮
2024-03-20 20:20·浏览量:549
云潮
发布于 2024-03-20 20:20549浏览

作者:守卫

关键词:文本,excel

一、问题背景:

1.在做一些文本抓取时,如聊天记录、直播弹幕、评论等信息时,会获取大量的文本内容(人名、时间、内容等)。这些文本内容看上去复杂繁琐而且文字量很大,无法一目了然。这时就需要将文本转成excel。

2.在教育体系中,一键生成电子卷子,不能直接将已有的word试卷直接导入,而是要转成对应格式的excel才能进行导入。

二、解决方法:

注:解决方案不唯一,要根据特定情况,进行特定分析。修改不同的分割方式,以及不同的判断逻辑。

  接下来介绍的一种方式为,以空一行(即两个回车键)为单独一个一个整体(一行);以换行(即一个回车键)为一个字段内容(一列);如下图所示:

1.逻辑代码语句

通用代码逻辑:

  1.打开文本内容,读取所有内容。

  2.按照不同文本进行分割(具体请看更下面内容)

  3.将分割好的内容重新整理成新的内容。

#打开文件 并阅读其中内容
path = "文件路径"
with open(path,"r",encoding="utf-8") as f:
    text = f.read()

"""此处要按照 不同的文本内容的分割逻辑进行分割,分割成一个"""

#接下来进行重新整理列表,组合成可以写入excel的二位列表
temp_lst = []
for i in lst:
    if i == "":
        temp_lst.append([])
    else:
        temp_lst[-1].append(i)

2.不同的分割情况

1.以"换行"进行分割,如下图所示

处理方法:

text.split("\n") 来进行分割

   2.以"序号进行分割",如下图所示

    处理方法:

除此之外,还有很多种特殊情况,要根据不同情况进行分析,进行不同的分割方式。

三、展示结果

根据上面数据通过整理分析,转成下面表格

完整代码如下:

with open(path,"r",encoding="utf-8") as f:
    text = f.read()

lst =text.split("\n")


temp_lst = []

for i in lst:
    if i == "":
        temp_lst.append([])
    else:
        temp_lst[-1].append(i)

excel_lst = []
for i in temp_lst:
    if i == []:
        continue
    temp = i[0].split(" ")
    excel_lst.append([temp[0]+" "+temp[1],temp[2],i[1]])

4.结合影刀实现最终流程逻辑



收藏2
全部评论1
最新
发布评论
评论