用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);
相关推荐
大黄说说4 分钟前
HTML5语义化标签:从div到article与section的进化之路
前端·html·html5
m0_640309306 分钟前
如何将 sticky 元素精确定位到父容器的右上角
jvm·数据库·python
帅小伙―苏6 分钟前
力扣42接雨水
前端·算法·leetcode
带娃的IT创业者8 分钟前
深度解析 Claude Design:如何利用 Anthropic 最新设计范式构建 AI 原生应用
人工智能·python·llm·claude·应用开发·anthropic·ai原生应用
是梦终空11 分钟前
计算机毕业设计271—基于python+深度学习+YOLOV7的车牌识别系统(源代码+数据库+3万字论文)
python·深度学习·opencv·yolo·毕业设计·pyqt5·车牌识别系统
糯米团子74912 分钟前
react速通-2
前端·react.js·前端框架
m0_3776182318 分钟前
c++如何将双精度浮点数以科学计数法写入文件_scientific标志【详解】
jvm·数据库·python
心连欣19 分钟前
从静态页面到动态交互:DOM操作的核心API解析
前端·javascript·api
weixin_4249993621 分钟前
如何检测SQL注入风险_利用模糊测试技术发现漏洞
jvm·数据库·python
橙某人22 分钟前
SSR页面上的按钮点不了?Nuxt 懒加载水合揭秘💧
前端·vue.js·nuxt.js