You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历文件并将用作标识符的保留关键字替换为带res_前缀的形式

代码修正方案

原代码错误点

  • 匹配逻辑错误:if i == data 是判断整个文件内容完全等于单个关键字,无法匹配文件中零散出现的关键字片段
  • 替换参数错误:data.replace(keywords, 'res') 第一个参数传入了整个关键字列表而非单个关键字,第二个参数仅填写了res,没有补下划线也没有保留原关键字内容,替换逻辑完全失效
  • 无全字匹配校验:直接做字符串替换会误改包含关键字的其他标识符,例如变量名cosine会被错误修改为res_cosine,不符合仅修改作为独立标识符的保留字的需求

修正后代码

import re

keywords = ['cos','abs', 'sin','begin','end','input','output']
# 构造全字匹配正则规则,\b 表示单词边界,仅匹配独立标识符
pattern = re.compile(r'\b(' + '|'.join(re.escape(key) for key in keywords) + r')\b')

with open('filename', 'r', encoding='utf-8') as file:
    data = file.read()

# 匹配到关键字后在前缀加res_,\1 反向引用匹配到的原关键字内容
data = pattern.sub(r'res_\1', data)

with open('filename', 'w', encoding='utf-8') as file:
    file.write(data)

效果验证

原输入文件片段:

input cos;
cos = x + y

处理后输出:

input res_cos;
res_cos = x + y

完全符合需求。

内容的提问来源于stack exchange,提问作者Aron Chabane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:51:04