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

Python使用with open与replace操作时出现重复行问题求助

解决多字符串替换时重复行的问题

你的问题根源很明确:当前代码每读取一行后,会两次调用fileout.write()——第一次写入替换TBOIL_VAL后的行,第二次写入替换THERMAL_CONDUCTIVITY_VAL后的行,相当于把原文件的一行复制了两次输出,自然出现重复行。

正确的做法是在同一行上完成所有替换操作,只写入最终处理后的行一次,同时注意with语句会自动管理文件关闭,不需要手动调用close()。修改后的代码如下:

with open(input_file, 'r') as filein:
    with open(MATERIAL_LIST[number]+'.c', 'w+') as fileout:
        for line in filein:
            # 先在同一行上完成所有替换
            processed_line = line.replace('TBOIL_VAL', str(BOILING_POINT[number]))
            processed_line = processed_line.replace('THERMAL_CONDUCTIVITY_VAL', str(THERMAL_CONDUCTIVITY[number]))
            # 只写入一次处理后的行
            fileout.write(processed_line)

如果后续需要添加更多替换项,只需继续在processed_line上链式调用replace即可,比如:

processed_line = line.replace('STR1', VAL1).replace('STR2', VAL2).replace('STR3', VAL3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 07:17:35