Python如何根据关键字逐行提取文本内容问题

 更新时间:2023年08月16日 15:23:33   作者:南洲.  
这篇文章主要介绍了Python如何根据关键字逐行提取文本内容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python根据关键字逐行提取文本内容

在获取测试的一些数据时,需要对数据重新提取保存,因此记录。

原始文本样式

2018-09-06 16:42 - INFO - Coordinate: [-285.444793701, 1958.66479492, 175.649078369], End of execution.
2018-09-06 16:43 - INFO - Coordinate: [-301.866485596, 1959.87561035, 175.649200439], End of execution.
2018-09-06 16:44 - INFO - Coordinate: [-318.365051275, 1960.27978516, 175.646804815], End of execution.
2018-09-06 16:45 - INFO - Coordinate: [-334.736816406, 1961.48742676, 176.991455078], End of execution.
2018-09-06 16:46 - INFO - Coordinate: [-356.053833008, 1962.49230957, 176.991180429], End of execution.
2018-09-06 16:47 - INFO - Coordinate: [-370.848907471, 1962.69274902, 176.989471436], End of execution.
2018-09-06 16:48 - INFO - Coordinate: [-388.050415039, 1963.19372559, 178.462493896], End of execution.

提取代码如下

# key words to extract the coordinate
str_start = "[" 
str_end   = "]"
f_orig = open('/home/yasin/test_coordinate.txt') # original file
f_coord = open('coordinate_save.txt', 'w')  # target file used to save
line = f_orig.readline()
while line:
    # find index according to the key words
    index_start = line.find(str_start)
    index_end = line.find(str_end)
    text = line[index_start : index_end]
    if text != '':
        # If there is more than one [], we can use "Coordinate" and "End" as str_start and str_end
        f_coord.write(str(line[index_start + 1 : index_end]) + '\n')
    line = f_orig.readline()
f_orig.close()
f_coord.close()

提取后保存样式

-285.444793701, 1958.66479492, 175.64907836
-301.866485596, 1959.87561035, 175.64920043
-318.365051275, 1960.27978516, 175.64680481
-334.736816406, 1961.48742676, 176.99145507
-356.053833008, 1962.49230957, 176.99118042
-370.848907471, 1962.69274902, 176.98947143
-388.050415039, 1963.19372559, 178.46249389

有的同学问如下问题:

根据vertex关键字在其后面进行换行?

我的方法是对文本按关键字分割并重写文件,如果各位有更好的方法,可以一起探讨!

f_in = open('test.txt')  #源文件
f_out = open('out.txt', 'w')  #重写文件
line = f_in.readlines()    #整个文件读入
key_word = "hello"
line_split = line[0].split(key_word)   #按指定单词分割
for i in range(len(line_split)):
    if len(line_split[i])>0:
        f_out.write(key_word+":"+line_split[i].strip(",")+"\n") # 去掉逗号再加上换行即可

python提取关键字之后的段落

import pandas as pd
import re
# 读取原始 Excel 文件
df = pd.read_excel(r"C:\Users\win10\Desktop\1.xlsx")
# 定义正则表达式
pattern = re.compile(r'.*Conclusion.*', re.IGNORECASE)
# 遍历每一行数据
for index, row in df.iterrows():
    if isinstance(row["art_content"], str) and pd.notna(row["art_content"]):
        # 获取包含 "Conclusion" 的段落所在行号
        conclusion_line_index = -1
        for i, line in enumerate(row["art_content"].split("\n")):
            if pattern.match(line):
                conclusion_line_index = i
                break
        if conclusion_line_index != -1:
            # 获取从 "Conclusion" 行开始的所有段落
            conclusion_paragraphs = row["art_content"].split("\n")[conclusion_line_index + 1 :]
            # 将所有段落连接为一个字符串,并去掉首尾空格
            conclusion_section = " ".join(conclusion_paragraphs).strip()
            # 将结果赋值给对应的 conclusion 列
            df.at[index, "conclusion"] = conclusion_section
# 将处理后的数据写入新的 Excel 文件
df.to_excel(r"C:\Users\win10\Desktop\工作簿1.xlsx", index=False)

以上代码中,我们遍历每个 "art_content" 列的文本内容,用循环定位到包含 "Conclusion" 字样的段落所在的行号(如果没有找到则保持行号为 -1)。

如果找到了 "Conclusion" 所在的段落,就将该段落以及其以下的所有段落连接成一个字符串,并赋值给对应的 "conclusion" 列。

处理完毕后,将整个 DataFrame 存入新的 Excel 文件中。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用python实现一个简单ping pong服务器

    使用python实现一个简单ping pong服务器

    这篇文章主要为大家介绍了使用python实现一个简单ping pong服务器,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Python 相对路径报错:"No such file or directory"'原因及解决方法

    Python 相对路径报错:"No such file or 

    如果你取相对路径不是在主文件里,可能就会有相对路径问题:"No such file or directory",由于python 的相对路径,相对的都是主文件所以会出现Python 相对路径报错,今天小编给大家带来了完美解决方案,感兴趣的朋友一起看看吧
    2023-02-02
  • 详解Python中Pygame键盘事件

    详解Python中Pygame键盘事件

    今天给大家带来的是关于Python的相关知识,文章围绕着Pygame键盘事件展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 如何把python项目部署到linux服务器

    如何把python项目部署到linux服务器

    这篇文章主要介绍了如何把python项目部署到linux服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Python3安装psycopy2以及遇到问题解决方法

    Python3安装psycopy2以及遇到问题解决方法

    在本篇文章里小编给各位分享的是关于Python3如何安装psycopy2以及相关问题解决方法,需要的朋友们学习下。
    2019-07-07
  • Python爬虫技术

    Python爬虫技术

    本文将要介绍的是python爬虫基础知识,感兴趣的小伙伴一起来学习吧
    2021-08-08
  • pytorch之scatter_的用法及说明

    pytorch之scatter_的用法及说明

    这篇文章主要介绍了pytorch之scatter_的用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python实现双因素验证2FA的示例代码

    Python实现双因素验证2FA的示例代码

    双因素认证(2FA)作为额外安全层为账号登录添加了第二层身份验证。确保账号持有人是可以访问数字身份的唯-用户。如果不使用双因表认证,企业将承担巨大的安全风险。本文将用Python实现双因素验证2FA,需要的可以参考一下
    2022-07-07
  • Python中turtle库的使用实例

    Python中turtle库的使用实例

    这篇文章主要介绍了Python中turtle库的使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • pycharm的python_stubs问题

    pycharm的python_stubs问题

    这篇文章主要介绍了pycharm的python_stubs问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论