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

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

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

有个需要注意的地方,就是文件的编码方式,要替换成您文件的编码方式,我这里是utf-8,windows文件有可能是gbk。

python 复制代码
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);
相关推荐
dy171728 分钟前
element-plus表格默认展开有子的数据
前端·javascript·vue.js
CodeCraft Studio3 小时前
PDF处理控件Aspose.PDF教程:使用 Python 将 PDF 转换为 Base64
开发语言·python·pdf·base64·aspose·aspose.pdf
零点零一3 小时前
VS+QT的编程开发工作:关于QT VS tools的使用 qt的官方帮助
开发语言·qt
2501_915918414 小时前
Web 前端可视化开发工具对比 低代码平台、可视化搭建工具、前端可视化编辑器与在线可视化开发环境的实战分析
前端·低代码·ios·小程序·uni-app·编辑器·iphone
困鲲鲲4 小时前
Python中内置装饰器
python
摩羯座-185690305944 小时前
Python数据可视化基础:使用Matplotlib绘制图表
大数据·python·信息可视化·matplotlib
程序员的世界你不懂5 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
索迪迈科技5 小时前
网络请求库——Axios库深度解析
前端·网络·vue.js·北京百思可瑞教育·百思可瑞教育
gnip5 小时前
JavaScript二叉树相关概念
前端
lingchen19065 小时前
MATLAB的数值计算(三)曲线拟合与插值
开发语言·matlab