基础解释:这个是将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这些支持中文的编码即可。
或者使用支持中文的依赖库去转换
特别提示:请合理合法使用,切勿贪图小利赚利
做遵纪守法每一天的自己!