一个删除文件夹中源代码中文本中指定内容的脚本
有时可能会遇到这么一种情况,项目的文件夹中嵌套文件夹,我们的源代码按模块分布在不同层级的文件目录里
每个文件里都有相同的内容。我们想去掉这些信息,或者添加一些信息。
我们该怎么样做呢?
python可以很方便的帮我们实现
批量删除重复内容的思路:
step1、获取根目录下所有文件的路径
step2、针对每一文件的路径,读出文件内容。
step3、新建一个读操作和一个写操作。
step4、读操作分行读取数据,写操作根据读操作的各行信息判断是否要删除该行,写入文件。
1 #!usr/lib/env python3 2 #coding=utf-8 3 import codecs 4 import os, shutil 5 #str 保证路径中有中文也能被正确读取 6 root_path = str("/xxx/files") 7 files = [] 8 def list_file(path): 9 print("find all file pathes") 10 for parent, dirnames, filenames in os.walk(path): 11 for filename in filenames: 12 if filename.endswith('.cpp') or filename.endswith('.h') : 13 file_path = os.path.join(parent, filename) 14 print("文件名 : %s" % filename) 15 print("完整路径 : %s\n" % file_path ) 16 files.append(file_path) 17 return files 18 def delete_lines_in_file(path): 19 #codecs.open 比open好用的地方在于 打开文件 不会包编码错误 20 with codecs.open(path,'r',encoding= 'utf-8') as f: 21 lines = f.readlines() 22 # print(lines) 23 with codecs.open(path,'w',encoding = 'utf-8') as f_w: 24 for line in lines: 25 print(" line %s" % line) 26 if "some thing appear in every file" in line: 27 print("delete line %s" % line) 28 continue 29 else: 30 f_w.write(line) 31 32 if __name__ == '__main__': 33 print("start...") 34 files = list_file(root_path) 35 for file in files: 36 delete_lines_in_file(file) 37 print("end...")
批量增加待续。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具