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

用python实现多文件多文本替换功能

用python实现多文件多文本替换功能

今天修改单位项目代码时由于改变了一个数据结构名称,结果有几十个文件都要修改,一个个改实在太麻烦,又没有搜到比较靠谱的工具软件,于是干脆用python手撸了一个小工具,发现python在这方面确实方便,代码也就几十行,这里记录一下,需要的朋友请拿走。
有个需要注意的地方,就是文件的编码方式,要替换成您文件的编码方式,我这里是utf-8,windows文件有可能是gbk。

import os
import fileinput# 定义一个函数,用于替换文件中的字符串
def replace_in_file(file_path, old_str, new_str):for line in fileinput.input(file_path, inplace=True, encoding='utf-8'):print(line.replace(old_str, new_str), end='')fileinput.close()if __name__ == '__main__':# 设置要替换的目录路径directory = 'D"\\dir\\subdir'# 设置要替换的字符串字典(map)placeDic = {'oldstring1:newstring1', 'oldstring2:newstring2', 'oldstring3:newstring3'}old_strings = placeDic.keys()# 遍历目录下的所有文件for filename in os.listdir(directory):# 只处理需要的文件if filename.endswith('.cpp'):file_path = os.path.join(directory, filename)for old_string in old_strings:new_string = placeDic.get(old_string, '');replace_in_file(file_path, old_string, new_string);

在这里插入图片描述

相关文章:

  • 【算法与设计】期末总结
  • 国际荐酒师香港协会受邀参加2024年美国独立日庆祝活动
  • 【进阶篇-Day3:JAVA接口新特性、代码块、内部类、Lambda表达式、组件等的介绍】
  • 在微信小程序中安装和使用vant框架
  • 【靶场搭建】-01- 在kali上搭建DVWA靶机
  • Spring Cloud Gateway 概述与基本配置(下)
  • 玄机平台流量特征分析-常见攻击事
  • 卡本医疗VENUS登陆香港国际医疗展,探索全球医疗发展新机遇
  • 统计学一(术语,正态)
  • 【前端面经】数组算法题解
  • 制造业为什么需要ERP企业管理软件?
  • 我用chatgpt写了一款程序
  • 内部类介绍
  • reverse-android-实战喜马拉雅-ollvm
  • 【Java】已解决java.lang.NullPointerException异常
  • 【comparator, comparable】小总结
  • canvas 绘制双线技巧
  • CentOS7简单部署NFS
  • crontab执行失败的多种原因
  • django开发-定时任务的使用
  • Java知识点总结(JavaIO-打印流)
  • java中具有继承关系的类及其对象初始化顺序
  • JS+CSS实现数字滚动
  • Linux CTF 逆向入门
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Odoo domain写法及运用
  • SpiderData 2019年2月16日 DApp数据排行榜
  • web标准化(下)
  • 从零开始学习部署
  • 关于List、List?、ListObject的区别
  • 码农张的Bug人生 - 初来乍到
  • 深入浅出webpack学习(1)--核心概念
  • 使用Swoole加速Laravel(正式环境中)
  • 我这样减少了26.5M Java内存!
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 学习Vue.js的五个小例子
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​ArcGIS Pro 如何批量删除字段
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (Java)【深基9.例1】选举学生会
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (七)Knockout 创建自定义绑定
  • (转载)Google Chrome调试JS
  • .NET Framework 3.5安装教程
  • .Net FrameWork总结
  • .NET 回调、接口回调、 委托
  • .net快速开发框架源码分享
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .Net中的集合
  • @ModelAttribute注解使用
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?