用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);
相关推荐
千寻girling3 小时前
一份不可多得的 《 Django 》 零基础入门教程
后端·python·面试
奇迹_h3 小时前
打造你的HTML5打地鼠游戏:零基础入门实践
前端
SuperEugene3 小时前
Vue生态精选篇:Element Plus 的“企业后台常用组件”用法扫盲
前端·vue.js·面试
Neptune13 小时前
JavaScript回归基本功之---类型判断--typeof篇
前端·javascript·面试
贾铭3 小时前
如何实现一个网页版的剪映(三)使用fabric.js绘制时间轴
前端·后端
子兮曰5 小时前
后端字段又改了?我撸了一个 BFF 数据适配器,从此再也不怕接口“屎山”!
前端·javascript·架构
万少6 小时前
使用Trae轻松安装openclaw的教程-附带免费token
前端·openai·ai编程
浪浪山_大橙子7 小时前
OpenClaw 十分钟快速,安装与接入完全指南 - 推荐使用trae 官方 skills 安装
前端·人工智能
忆江南7 小时前
iOS 可视化埋点与无痕埋点详解
前端
databook7 小时前
探索视觉的边界:用 Manim 重现有趣的知觉错觉
python·动效