用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);
相关推荐
月落.1 分钟前
C#中的报文(Message)
开发语言·c#
计算机编程-吉哥3 分钟前
计算机毕业设计 基于Python的音乐平台的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
python·django·毕业设计·课程设计·毕业论文·计算机毕业设计选题·音乐平台
算法与编程之美7 分钟前
通过两个类计算一个长方形的周长和面积
java·开发语言·javascript·jvm·servlet
踏过山河,踏过海12 分钟前
在Windows系统上安装的 Arrow C++ 库
开发语言·c++
qzy062113 分钟前
C++启动其它进程的方式
开发语言·c++
苦瓜想干飞日本14 分钟前
c++与Python用笛卡尔的心形函数输出爱心
开发语言·python
Ajiang282473530415 分钟前
C++中的string类
开发语言·c++
ceek@20 分钟前
HTML增加复制模块(使用户快速复制内容到剪贴板)
前端·javascript·html
sukalot22 分钟前
windows C++-计划组
开发语言·c++·windows
小于负无穷22 分钟前
前端面试题(十)
前端