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

Python编辑TXT文件后拼接未保留修改的问题求助

问题原因与解决方法

为什么修改没生效?

你修改的只是内存里的f_contents列表,没有把修改后的内容写回磁盘上的Balance1.txt文件。当用readlines()读取文件时,内容会被加载到内存的列表中,修改这个列表只是在内存里改数据,磁盘上的原文件完全没变化,所以合并时读的还是原始内容。

两种解决方法

方法1:先把修改写回原文件,再合并

给处理Balance1.txt的代码补充写回步骤,确保修改同步到磁盘:

with open('Balance1.txt', 'r+') as f:
    f_contents = f.readlines()
    # 修改Anna的金额,注意加换行符\n保证格式正确
    f_contents[8] = "Anna, 600000\n"
    # 删除空白行
    del f_contents[3]
    del f_contents[3]
    
    # 将文件指针移到文件开头
    f.seek(0)
    # 把修改后的内容写入文件
    f.writelines(f_contents)
    # 截断文件,避免原文件中剩余的旧内容残留
    f.truncate()

执行这段代码后,Balance1.txt就会被更新,再运行你原来的合并代码,就能得到包含修改内容的Balance.txt了。

方法2:直接在内存处理所有内容,不修改原文件(更推荐)

如果不想改动原始文件,可以把三个文件的内容都加载到内存处理好,再直接写入Balance.txt:

# 处理Balance1.txt的内容
with open('Balance1.txt', 'r') as f:
    balance1_content = f.readlines()
balance1_content[8] = "Anna, 600000\n"
del balance1_content[3]
del balance1_content[3]

# 读取另外两个文件的内容
with open('Saving.txt', 'r') as f:
    saving_content = f.readlines()
with open('Withdrawal.txt', 'r') as f:
    withdrawal_content = f.readlines()

# 合并所有内容到Balance.txt
with open('Balance.txt', 'w') as outfile:
    outfile.writelines(balance1_content)
    outfile.writelines(saving_content)
    outfile.writelines(withdrawal_content)

这种方式不会修改原始文件,避免误操作破坏原始数据,更适合作业场景。

注意:修改行内容时一定要加上\n换行符,否则写入后各行会连在一起,格式混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:10:30