当前位置: 首页 > article >正文

python进行批量搜索匹配替换文本文字的matlab操作实例

在进行一些数据处理时,可能需要抓取原文中的一些内容,批量替换原文另外的一些内容,而且事先还需要一步搜索匹配的步骤。

举个例子,如下matlab输出的txt文件,原文件有几万行数据,这里只摘取3行对应的
文件文本大体分成2个大部分,一个是HMNAME COMP,一个是HMNAME PROP,
其中的中间部分有些是一样的,比如13100505_6063-T6_T380,13100505_6063-T6_T770等,
但是它们是散落在文本中的

所以想要的步骤是:

  1. 匹配中间部分
  2. 用HMNAME PROP行中的引号前的数字,替换掉相应的HMNAME COMP中的引号前的数字
  3. 完成
    在这里插入图片描述
    理想的替换之后:
    在这里插入图片描述
    因为源文件有上万条数据,所以只能用python工具自动化操作,不能手动啦

写的最终代码如下:

your_file_name = '111.txt'  #文件路径
with open(your_file_name, 'r') as f:
    file_data = f.read()

#首先把HMNAME COMP和HMNAME PROP各行分成两个list
hmname_comp_lines = []   
hmname_prop_lines = []
for line in file_data.split('\n'):   #逐行判断分类,append进list中
    if 'HMNAME COMP' in line:
        hmname_comp_lines.append(line)
    elif 'HMNAME PROP' in line:
        hmname_prop_lines.append(line) 
        
# 找到HMNAME COMP和HMNAME PROP的各行中具有相同引号里内容的行
for comp_line in hmname_comp_lines:    
    for prop_line in hmname_prop_lines: 
        if comp_line.split('"')[1] == prop_line.split('"')[1]:     #开始匹配判断中间字符是否一样
            # 如果一样的话,用HMNAME PROP行中的引号前的数字替换掉相应的HMNAME COMP中的引号前的数字,是一个拼接的方法
            new_comp_line = comp_line.split('"')[0].replace(comp_line.split('"')[0].split()[2],prop_line.split('"')[0].split()[2]) + '"' + prop_line.split('"')[1] + '"' + comp_line.split('"')[2]+ '"' +comp_line.split('"')[3]+ '"' +comp_line.split('"')[4]
            print(new_comp_line)
            # 遍历文档全盘替换
            file_data = file_data.replace(comp_line, new_comp_line)

with open('your_file_name', 'w') as f:
    f.write(file_data)         #这里是直接写入原文件了,记得事先保存副本以免原文件数据丢失

希望对大家有所启发,记得点赞哦!


http://www.kler.cn/a/229782.html

相关文章:

  • 【Mysql】事务的隔离级别与 MVCC
  • 【Qt学习笔记】(三)常用控件(持续更新)
  • 基于单片机的智能寻光小车设计
  • hbuiderX打包为apk后无法停止录音的解决方案
  • Hadoop:HDFS学习巩固——基础习题及编程实战
  • 力扣● 62.不同路径 ● 63. 不同路径 II
  • 《Docker极简教程》--Docker基础--基础知识(一)
  • 我用selenium开发了一个自动创建任务,解放重复性工作
  • Qt 进程守护程序
  • 机器学习 | 探索朴素贝叶斯算法的应用
  • Qt|实现时间选择小功能
  • ref用法
  • Llama2大模型开源,大模型的Android时代来了?
  • 如何更改默认浏览器?
  • 2024-02-01(Hive)
  • java -jar启动SpringBoot项目时配置文件加载位置与优先级
  • Python学习路线 - Python高阶技巧 - 拓展
  • QT 应用程序中集成浏览器
  • MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(1)-后端项目框架搭建
  • 【Jenkins】配置及使用|参数化|邮件|源码|报表|乱码