Python 批量修改或替换文本内容

Python 批量修改或替换文本内容

  • 前言
  • 源码
  • 效果图
  • 鸣谢

前言

遇到一个需要将一堆代码中部分文字替换或删除的需求。
需要处理像下面上百个脚本
想要处理的文件堆
需要删除每个脚本中类似下图的内容
需要删除的内容
可以用python批量处理所有的代码,并且删除我想要删除的内容。

源码

其中使用chardet来处理不同字符集的问题,因为不同操作系统保存的文件字符编码或许不同。

import os
import chardetdef detect_encoding(file_path):with open(file_path, 'rb') as f:raw_data = f.read()result = chardet.detect(raw_data)return result['encoding']def traverse_folder(folder_path,original_str,new_str):for root, dirs, files in os.walk(folder_path):for file in files:if file.endswith(".cs"):file_path = os.path.join(root, file)print(f"File: {file_path}")# 检测文件编码file_encoding = detect_encoding(file_path)print(f"Encoding: {file_encoding}")with open(file_path, "r+", encoding=file_encoding, errors='ignore') as f:content = f.read()# 替换字符串replaced_content = content.replace(original_str, new_str)# print(replaced_content)# 将替换后的内容写入原始文件f.seek(0)f.write(replaced_content)f.truncate()print("File modified.")print("-" * 50)# 注意:如果你在 Windows 系统上使用反斜杠作为文件夹路径分隔符,请将反斜杠转义或者使用原始字符串(在路径字符串前面加上 r),
# 例如 "C:\\path\\to\\your\\folder" 或 r"C:\path\to\your\folder"。
# 在其他操作系统上(如 Linux 或 macOS),可以使用正斜杠作为路径分隔符,
# 例如 "/path/to/your/folder"。# 指定文件夹路径
folder_path = r"D:\Project\Python\DelMLineString\Code"
# 要替换的字符串
original_str = '''/// <summary>/// buff进入/// </summary>/// <param name="bfrls"></param>/// <param name="role"></param>/// <param name="enemy"></param>/// <param name="json"></param>public override void BuffOnEnter(RoleAttribute self, RoleAttribute other, string json){m_Entity = JsonUtility.FromJson<BuffEntityBase>(json);base.BuffOnEnter(self, other, json);m_buffInfo = m_Entity;InitAttr();}'''#新的字符串
new_str = '''
'''
# 调用函数遍历文件夹
traverse_folder(folder_path,original_str,new_str)

效果图

顺利删除所有脚本中需要删除的内容,替换也一样。
效果图

鸣谢

ChatGPT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/7944.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在IDEA中使用groovy脚本生成POJO

步骤1&#xff1a;打开Database窗格&#xff0c;新建数据库连接 数据库连接默认只是当前工程使用&#xff0c;想要所有IDEA窗口共享 步骤2&#xff1a;编辑groovy脚本 步骤3&#xff1a;选择一张或多张表&#xff0c;生成代码 生成效果 附&#xff1a;groovy脚本 import com.i…

主机与虚拟机ubuntu网络无法ping通问题

一. 主机与虚拟机无法ping通问题 在嵌入式开发中&#xff0c;经过会涉及网络方面的问题。最常用到的是开发板在 虚拟机&#xff08;ubuntu&#xff09;通过NFS服务挂载到ubuntu中&#xff0c;这里就涉及网络是否可以ping通问题。 开发板 ping 通 ubuntu虚拟机系统的前提&…

NumPy实现逻辑回归

说明&#xff1a;数据集 ex2data1.txt是吴恩达机器学习的作业的数据集。 # -*-coding:utf-8-*- import matplotlib.pyplot as plt import numpy as np import pandas as pdclass Logitstic_Regression:def __init__(self, learning_rate0.01, num_iterations75000, threshold0.…

element ui table 状态用switch展示

效果图如下 方法一&#xff1a;将图片封装成组件 1.&#xff1a;ImgswitchOpen.vue 2&#xff1a;页面引入组件 3&#xff1a;使用 方法二&#xff1a;引入图片 1&#xff1a;引入图片 2&#xff1a;在data中定义 3.使用

如何编写一条高质量测试用例

测试场景&#xff1a; 为登录功能设计测试用例 测试员为什么要会编测试用例 测试员的目标是要保证系统在各种场景下的功能是符合设计要求的。而测试用例就是测试员想到的测试场景。&#xff08;这也是高级别的测试员即使不会代码也能找到较好工作的原因&#xff09; 编写测试…

Uniapp中简单弹出层的使用

图示 思路 当派工单这个输入框获取到焦点后&#xff0c;弹出弹出层选择数据。 1、定义这个输入框 <view class"cu-form-group"><view class"title"><text class"text-red">*</text>派工单号: </view><input…

考虑微网新能源经济消纳的共享储能优化配置(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

leetcode消失的数字

题目描述 数组 nums 包含从 0 到 n 的所有整数&#xff0c;但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在 O ( n ) O(n) O(n) 时间内完成吗&#xff1f; 示例 1&#xff1a; 输入&#xff1a;[3,0,1] 输出&#xff1a;2 leetcode链接&#xff1a;消失的数字 ⭕…

2023年无线蓝牙耳机排行榜,十款无线蓝牙耳机品牌推荐

蓝牙耳机作为现代生活必备的电子产品之一&#xff0c;我们在选购时的选择就显得尤为重要。随着各大科技公司对蓝牙耳机功能的不断完善&#xff0c;用户对于耳机的期望也越来越高&#xff0c;音质、性能、降噪、舒适度等方面都成为了用户选择蓝牙耳机时考虑的因素。接下来我们一…

C++ 数据结构B 树

目录 1. 常见的搜索结构 2. B树概念 3. B-树的插入分析 4. B-树的插入实现 4.1 B-树的节点设计 4.2 插入key的过程 4.4 B-树的简单验证 4.5 B-树的性能分析 4.6 B-树的删除 5. B树和B*树 5.1 B树 5.2 B*树 5.3 总结 6. B-树的应用 6.1 索引 6.2 MySQL索引简介 6…

计算机网络————运输层

文章目录 概述UDPTCP首部格式 连接管理连接建立连接释放 概述 从IP层看&#xff0c;通信双方是两个主机。 但真正进行通信的实体是在主机中的进程&#xff0c;是这个主机中的一个进程和另一个主机中的一个进程在交换数据。 所以严格的讲&#xff0c;两个主机进行通信就是两个…

关于邮件协议的理解、实验以及java mail的实现

目录 1、几种电子邮件系统组成 传统电子邮件系统 用户代理 UA (User Agent) 邮箱服务器 基于万维网的电子邮件系统 2、电子邮件协议 SMTP 连接建立 邮件传送 连接释放 局限 POP3 IMAP 补充 3、telnet实验电子邮件协议 SMTP POP3 4、java mail 参考文章 1、几…