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

如何用字典对应值替换文件中的指定占位符?附示例场景

我来帮你搞定这个文本替换的问题!看起来你需要把模板里的<<KEY>>格式占位符替换成字典中对应的值,下面是一套清晰的实现思路和代码示例,应该能解决你的问题:

核心实现思路

  1. 先把模板文件的内容完整读入内存
  2. 遍历你的数据字典,将每个键转换成<<KEY>>格式的占位符
  3. 把模板中所有匹配的占位符替换成对应的值
  4. 将替换后的内容写入新文件(避免覆盖原模板)

Python代码示例

def read_template(template_path):
    """读取包含占位符的模板文件"""
    with open(template_path, 'r', encoding='utf-8') as f:
        return f.read()

def replace_placeholders(template_content, data_dict):
    """替换模板中的所有<<KEY>>占位符"""
    for key, value in data_dict.items():
        # 生成匹配的占位符格式
        placeholder = f'<<{key}>>'
        # 注意:数字类型要转成字符串才能替换
        template_content = template_content.replace(placeholder, str(value))
    return template_content

def write_result(output_path, final_content):
    """将替换后的内容写入输出文件"""
    with open(output_path, 'w', encoding='utf-8') as f:
        f.write(final_content)

if __name__ == '__main__':
    # 替换成你的实际文件路径
    template_file = 'grade_template.txt'
    output_file = 'student_grade_report.txt'

    # 这里是从其他文件读取后整理好的字典(示例数据)
    student_grades = {
        'NAME': 'Alice Smith',
        'ID': '12345',
        'COURSE': 'CS101',
        'DUE': '2024-05-20',
        'SUBMITTED': '2024-05-21',
        'MINUTESLATE': 120,
        'LATEDEDUCTION': 5,
        'P1': 30,
        'P1COMMENTS': 'Good work, but missed edge case',
        'P2': 35,
        'P2COMMENTS': 'Perfect implementation',
        'SUBTOTAL': 65,
        'TOTAL': 60
    }

    # 执行完整流程
    template_content = read_template(template_file)
    final_report = replace_placeholders(template_content, student_grades)
    write_result(output_file, final_report)

注意事项(可能踩坑的点)

  • 大小写严格匹配:模板里的<<P1>>必须和字典中的键'P1'大小写完全一致,否则会替换失败
  • 数据类型处理:字典里的数字(比如MINUTESLATE、P1)一定要转成字符串再替换,否则会触发类型错误
  • 文件编码:如果模板包含中文或特殊字符,打开文件时务必指定encoding='utf-8',避免乱码
  • 批量处理:如果要给多个学生生成报告,可以把student_grades改成字典列表,循环遍历每个学生数据即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:38:30