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.mzph.cn/news/670244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言:箱线图绘制(添加平均值趋势线)

箱线图绘制 1. 写在前面2.箱线图绘制2.1 相关R包导入2.2 数据导入及格式转换2.3 ggplot绘图 1. 写在前面 今天有时间把之前使用过的一些代码和大家分享,其中箱线图绘制我认为是非常有用的一个部分。之前我是比较喜欢使用origin进行绘图,但是绘制的图不太…

vite+vue3发布自己的npm组件+工具函数

记录一下个人最近一次发布npm组件的过程: 一、创建组件和工具函数 执行命令创建一个空项目: npm create vite 创建过程稍微有些慢,不知何故?其中选择vue , 个人暂时使用的JS 。在 src 目录下面创建一个文件 package 存放组件和公…

【Java八股面试系列】JVM-垃圾回收

目录 垃圾回收 堆空间的基本结构 内存分配和回收原则 分代收集机制 Minor GC 流程 空间分配担保 老年代 大对象直接进入老年代 长期存活的对象将进入老年代 GC的区域 对象存活判定算法 引用计数法 可达性分析算法 finalize() 字符串常量判活 类判活 垃圾回收算…

1、将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践

将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践 希望将 ChatGPT 集成到您的数据科学工作流程中吗?这是一个利用 ChatGPT 进行数据科学的提示的实践。 ChatGPT、其继任者 GPT-4 及其开源替代品非常成功。开发人员和数据科学家都希望提高工作效率,并使用 ChatGPT 来简…

提示工程实战案例

如果你在 2023 年听说过生成式人工智能(Generative AI),你一定也听说过提示工程(Prompt Engineering)。 通过快速的互联网搜索或质疑 GenAI 本身,人们可以轻松找到相关的定义、提示技术,例如 零…

机器学习---半监督学习简单示例(标签传播算法)

1. 使用半监督学习方法 Label Spreading 在一个生成的二维数据集上进行标签传播 import numpy as np import matplotlib.pyplot as plt from sklearn.semi_supervised import label_propagation from sklearn.datasets import make_circles# generate ring with inner box n_s…

Apache Zeppelin 整合 Spark 和 Hudi

一 环境信息 1.1 组件版本 组件版本Spark3.2.3Hudi0.14.0Zeppelin0.11.0-SNAPSHOT 1.2 环境准备 Zeppelin 整合 Spark 参考:Apache Zeppelin 一文打尽Hudi0.14.0编译参考:Hudi0.14.0 最新编译 二 整合 Spark 和 Hudi 2.1 配置 %spark.confSPARK_H…

tee漏洞学习-翻译-2:探索 Qualcomm TrustZone的实现

原文:http://bits-please.blogspot.com/2015/08/exploring-qualcomms-trustzone.html 获取 TrustZone image 从两个不同的位置提取image 从手机设备本身从google factory image 已经root的Nexus 5设备,image存储在eMMC芯片上,并且eMMC芯片…

分享65个节日PPT,总有一款适合您

分享65个节日PPT,总有一款适合您 65个节日PPT下载链接:https://pan.baidu.com/s/1hc1M5gfYK8eDxQVsK8O9xQ?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知…

SQLite database实现加密

注意:以下操作以VS2022为开发工具,以C#为开发语言。 数据加密原因 软件在使用的各个场景,很多都需要数据具有保密性,于是对于数据库就需要加密。特别是在某些特定领域或存储敏感数据尤其如此。 SQLite加密实现 SQLite加密有两种…

Go语言每日一练——链表篇(五)

传送门 牛客面试笔试必刷101题 ----------------合并k个已排序的链表 题目以及解析 题目 解题代码及解析 解析 这一道题与昨天的合并链表题目类似,但是由于有K个且时间复杂度要求控制在O(nlogn),这里主要有两种解法:一种是依旧使用归并来…

Arduino 串口绘图仪简单使用

1、工具所在位置 串口绘图仪实际上是从预设的串口获取值并将其绘制在xy轴图每获取到一组数据向左滑动一个单位,读取数据的速度起快,滑动就越快。 Y轴代表来自串口的值,可以是单个也可以是一组 。在读取串口数据时遇到"\n"&#xf…

正点原子-STM32通用定时器学习笔记(1)

1. 通用定时器简介(F1为例) F1系列通用定时器有4个,TIM2/TIM3/TIM4/TIM5 主要特性: 16位递增、递减、中心对齐计数器(计数值:0~65535); 16位预分频器(分频系数&#xff…

RP2040 SPI

SPI 的库文件是arduino开源库,在程序中include。 SPI IIC都是通信协议【模块】,需要硬件支持,MCU都会集成相应的模块。arduino都集成在了内核中,直接用API函数调用即可。其他单片机的架构也是相同的。 SPI的库和函数及其相关说明…

GUI编程..

1.GUI(Graphical User Interface 图形用户界面) 所谓GUI 指的是在计算机中采用图形方式展示用户的界面 在GUI之前采用的是字符界面 有了GUI之后 采用的则是图形界面 2.Java的GUI编程方案 常见的有四种 3.Swing 1.实现一个窗口 public class Main{public static void ma…

眼动追踪系统体验实验(脑与认知期末考核)

实验名称:眼动追踪系统体验实验 实验目的: 本实验旨在通过体验脑与认知眼动追踪系统,了解该技术在心理学、认知科学等领域的应用,理解它是怎样工作的,探究眼动追踪技术如何揭示人类认知过程的奥秘。 实验环境&#…

155基于matlab 的形态学权重自适应图像去噪

基于matlab 的形态学权重自适应图像去噪;通过串并联的滤波降噪对比图,说明并联降噪的优越性。输出降噪前后图像和不同方法的降噪情况的信噪比。程序已调通,可直接运行。 155matlab 自适应图像降噪 串并联降噪 (xiaohongshu.com)

一些参数(仅供个人理解)

1.mAP: 数据集的平均准确率 mAP50-95:mAP阈值为50到mAP阈值为95,间隔5%,取得10个mAP值,然后对这十个值取平均。 目标检测评估指标mAP:从Precision,Recall,到AP50-95【未完待续】_map50和map50-95-CSDN博客 2.IoU&a…

使用VASPKIT生成非整数倍扩胞结构

在计算某些任务时需要根据原胞进行非对称或者根号倍扩胞,使用vaspkit可以构建一个扩胞倍数矩阵,这样可以获得特定方向非整数倍的扩胞结构。 这里使用的命令为vaspkit的400模块 注意400的命令会让你连续输入三行,每行都需要三个数值&#xff0…

智能优化算法 | Matlab实现飞蛾扑火(MFO)(内含完整源码)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 智能优化算法 | Matlab实现飞蛾扑火(MFO)(内含完整源码) 源码设计 %%%% clear all clc SearchAgents_no=100; % Number of search ag