用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);
相关推荐
2301_790300968 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
weixin_499771558 小时前
C++中的组合模式
开发语言·c++·算法
初级代码游戏8 小时前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
_waylau8 小时前
鸿蒙架构师修炼之道-架构师的职责是什么?
开发语言·华为·harmonyos·鸿蒙
2的n次方_9 小时前
CANN Ascend C 编程语言深度解析:异构并行架构、显式存储层级与指令级精细化控制机制
c语言·开发语言·架构
m0_736919109 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
getapi9 小时前
实时音视频传输与屏幕共享(投屏)
python
大橙子额9 小时前
【解决报错】Cannot assign to read only property ‘exports‘ of object ‘#<Object>‘
前端·javascript·vue.js
java干货9 小时前
为什么 “File 10“ 排在 “File 2“ 前面?解决文件名排序的终极算法:自然排序
开发语言·python·算法
_F_y9 小时前
C语言重点知识总结(含KMP详细讲解)
c语言·开发语言