[原创Python脚本] 指定路径文本文件内容替换

查看 50|回复 5
作者:ling123   
又来整点看似没啥用但是很实用的小脚本了
基础解释:这个是将A内容替换成B内容的一个脚本。
做这个脚本也是因为老修改一些文本文件的内容,手修,很fw,很sb,所以一气之下,恼羞成怒搞了这个脚本
既然是Python,当然是啥终端都支持运行Python脚本,安卓,Linux等等系统终端
上代码:[Python] 纯文本查看 复制代码import osimport re
#by(作者) zero丶
def backup_file(file_path):
    """为文件创建一个.bak后缀的备份"""
    backup_path = file_path + '.bak' #被备份文件后缀,如有需要比如搞错了可以改成原来的文件后缀,无需要就删除
    with open(file_path, 'r', encoding='utf-8') as original_file, \
         open(backup_path, 'w', encoding='utf-8') as backup_file:
        backup_file.write(original_file.read())
def replace_content_in_files(directory, search_pattern, replacement):
    """在指定目录下的所有.java文件中替换内容"""
    word_boundary_pattern = r'\b' + re.escape(search_pattern) + r'\b'
    regex = re.compile(word_boundary_pattern)
    total_files = 0
    modified_files = 0
    for root, dirs, files in os.walk(directory):
        for file in files:
            if file.endswith('.java'): #指定一个文本文件的文件后缀
                total_files += 1
                file_path = os.path.join(root, file)
                backup_file(file_path)  # 创建备份
               
                # 替换文件中的内容
                with open(file_path, 'r+', encoding='utf-8') as f:
                    content = f.read()
                    if regex.search(content):
                        new_content = regex.sub(replacement, content)
                        f.seek(0)
                        f.write(new_content)
                        f.truncate()  # 清除替换后多余的内容
                        modified_files += 1
    print(f"总共处理了 {total_files} 个文件")
    print(f"其中修改了 {modified_files} 个文件")
if __name__ == "__main__":
    directory = "" #指定文件路径
    search_pattern = "" #被替换内容
    replacement = ""#需要替换文本
    replace_content_in_files(directory, search_pattern, replacement)
   
上面使用的是utf8的文本编码,如果路径之类乱码不支持中文换成gbk这些支持中文的编码即可。
或者使用支持中文的依赖库去转换
特别提示:请合理合法使用,切勿贪图小利赚利
做遵纪守法每一天的自己!

内容, 脚本

ling123
OP
  

import os
import re
这个是两个import库,上面代码使用要换行下,应该是删到换行符了
ling123
OP
  

另外这主要是批量替换为主
博爵   

我用这种方式,制作了一个ae中英文切换脚本
archon1   


ling123 发表于 2024-10-24 20:13
另外这主要是批量替换为主

有组极其强大的工具叫f.exe/fr.exe/wfr.exe/bwfr.exe。Linux/Windows都可用。
再不济你用sed 也行啊。
效率高太多,功能也更加强大。
你用python,我的天,你试一下目标文件3~5位数量的时候,你唯一想的就是自杀。
zhilai   

对的,我也只用sed,或者vi
您需要登录后才可以回帖 登录 | 立即注册

返回顶部